2012-04-22 11 views
32

Komut dosyalarından birinde urllib.parse.urlencode() yöntemini kullanmaya çalışıyorum. ithalatpython 3.2 urllib.parse.urlencode() tanımlanamadı hatası

#!/usr/bin/python3.2 

import urllib 

data = urllib.parse.urlencode({'type': 'device_code','client_id': 150792241632891}) 

urllib Daha önce çalışıyordu ama şimdi hata aşağıdaki almak.

Traceback (most recent call last): 
    File "/home/rakesh/programming/test.py", line 8, in <module> 
    data = urllib.parse.urlencode({'type': 'device_code','client_id': 150792241632891}) 
AttributeError: 'module' object has no attribute 'parse' 

Çıktı Başlangıçta benim Python kabuğu şüphe ama piton sürümü 3.2 kullanıyor işaretlendiğinde fiine olması gereken.

Şimdi, python kabuğunun neden bu şekilde davrandığını tamamen şaşırdım. Burada bir şey eksik miyim?

Teşekkür

+0

@larsmans sayesinde. – Rakesh

cevap

59

Sen programında ithalatı gösterilmiyor, bu yüzden emin olamaz, ama içe ve ayrı yeniden ihraç olmayacak

import urllib 

öyledir modül urllib.parse. Bunun yerine, yapın.

(tüm işlevselliği alt birimlerin bulunması ve bu üst düzey olarak modül tarafından alınır, çünkü import urllib Python 3.x oldukça anlamsız.) Yanıt için

+0

Yanıt verdiğiniz için teşekkürler. Maalesef kodu kopyalarken içe aktarma ifadesini kaçırdım. Şimdi sorumu düzenledim. çözüm sizin için çalıştı. Yanlışlıkla, _.parse_ kısmını, alt modemi içereceğini varsayarak, ithalat ifademden kaldırdım. Daha önce beri urllib.parse ithal ettim bu yüzden neden daha önce çalışıyordu, ama alt modülü kaldırdığımda işe yaramadı ve kafam karıştı. – Rakesh