No module named 'urllib.request'; 'urllib' is not a package


想學爬蟲urllib的設置代理服務器,於是把之前跳過沒學的urllib撿起來,敲了段簡單的代碼,如下

import urllib.request

url = "http://www.baidu.com"
data = urllib.request.urlopen(url).read()
data = data.decode('UTF-8')
print(data)

 

然而執行后總是報錯:

Traceback (most recent call last):
  File "urllib.py", line 1, in <module>
    import urllib.request
  File "F:\python\urllib.py", line 1, in <module>
    import urllib.request
ImportError: No module named 'urllib.request'; 'urllib' is not a package

 

嘗試過用 from urllib import request,pip install urllib(想想好傻,urllib是python內置的庫)

還是同樣問題、保存py文件之后運行就提示 ImportError: No module named request。

但在python shell里面運行就正常。

 

 

多方查找,發現是個太傻x的錯誤。

 

原來是我的文件命名的問題

 

 系統搜索模塊的優先順序是:程序主目錄,然后是系統環境變量定義的路徑,然后才是標准庫目錄。 如果按這個順序找到了,當然就不再向下找了。因為文件名正好是urllib,本意想導入標准庫目錄下的urllib,結果把自己的當前文件導入了。

 

反思:

最開始在stackoverflow查到了,但看到問題背景是2.7版本的,就沒繼續往下看,堅定的認為是urllib的應用方法不對,認為不是3.6就沒有參考價值。

跟頭摔得慘,要長記性,1.任何地方都可能出錯誤 2.python2.7 和 3.x 代碼有不同處,但出錯問題原因可能一樣。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM