2015-05-15 9 views
7

में urllib का उपयोग करके '__path__' कोई विशेषता नहीं है मेरा कोड PyCharm में पूरी तरह से चल रहा है, लेकिन टर्मिनल में इसे खोलने का प्रयास करते समय मुझे त्रुटि संदेश हैं। मेरे कोड में क्या गलत है, या जहां मैंने गलतियां की हैं? टर्मिनल सेपायथन 3: विशेषता त्रुटि: 'मॉड्यूल' ऑब्जेक्ट में टर्मिनल

import urllib.request 
with urllib.request.urlopen('http://python.org/') as response: 
    html = response.read() 
    print(html) 

आउटपुट:

λ python Desktop\url1.py 
Traceback (most recent call last): 
    File "<frozen importlib._bootstrap>", line 2218, in _find_and_load_unlocked 
AttributeError: 'module' object has no attribute '__path__' 

During handling of the above exception, another exception occurred: 

Traceback (most recent call last): 
    File "Desktop\url1.py", line 1, in <module> 
    import urllib.request 
    File "C:\Users\Przemek\Desktop\urllib.py", line 1, in <module> 
    import urllib.request 
ImportError: No module named 'urllib.request'; 'urllib' is not a package 
+0

'आयात urllib.request' मान्य है ??? –

+1

@ विवेकसेबल, हाँ python3 के लिए। –

उत्तर

9

आप एक फ़ाइल C:\Users\Przemek\Desktop\urllib.py कहा जाता है, आप इसे नाम बदलने के लिए की जरूरत है। आप उस से आयात कर रहे हैं वास्तविक मॉड्यूल नहीं। C:\Users\Przemek\Desktop\urllib.py का नाम बदलें और C:\Users\Przemek\Desktop\urllib.pyc हटाएं।

यह वह फ़ाइल नहीं है जिसे आप चल रहे हैं लेकिन आपके पास एक ही निर्देशिका में फ़ाइल है इसलिए पाइथन वर्तमान निर्देशिका को पहले जांचता है इसलिए त्रुटि।

+0

हां, यही है, मेरे पास एक ही निर्देशिका में urllib.py नाम की एक फ़ाइल थी। आपकी सहायताके लिए धन्यवाद! – Przemek

+0

@Przemek। कोई जांच नहीं, अक्सर होता है –

0

आप अपनी स्रोत फ़ाइल urllib.py नाम देकर मानक लाइब्रेरी पैकेज urllib को छायांकन कर रहे हैं। इसका नाम बदलें!

तथ्य यह है कि यह पिचर्म में काम करता है यह PyCharm डेवलपर्स पर इंजीनियरिंग का एक अद्भुत काम है!

आप यहां पूर्ण आयात (from __future__ import absolute_import) का भी उपयोग कर सकते हैं; लेकिन इस मामले में मुझे नहीं लगता कि इससे आपकी मदद मिलेगी क्योंकि आपका स्टार्टअप स्रोत नाम उस लाइब्रेरी/पैकेज को छाया देता है जिसका आप उपयोग करने का प्रयास कर रहे हैं!

-1

इसके अलावा, इस:

import urllib.request 
with urllib.request.urlopen('http://python.org/') as response: 

इस तरह होना चाहिए:

import urllib 
with urllib.urlopen('http://python.org/') as response: 
+0

वास्तव में नहीं, ओपी python3 का उपयोग कर रहा है। –

+0

मेरा बुरा, सोचा 2.7 !! –

संबंधित मुद्दे