Python模組匯入錯誤分析
阿新 • • 發佈:2018-11-01
分享最近有一次使用Python導模組時的錯誤:
1、問題產生 最近筆者在練習爬蟲的過程中,得知有一個模組叫做builtwith,其中有個parse的方法可以用來檢查網站構建的技術型別,於是直接用pip安裝了此模組: pip install builtwith。 然後在匯入此模組的過程中(import builtwith),始終無法成功,提示資訊如下:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\Python35\lib\site-packages\builtwith\__init__.py", line 43
except Exception, e:
^
SyntaxError: invalid syntax
這時我們可以發現,這個模組是安裝成功的,在~\Python35\lib\site-packages\目錄下面,並且提示了__init__.py檔案的43行有問題。我們可以開啟此檔案看一看,然而發現這裡面用到了urllib2的模組。
if None in (headers, html):
try:
request = urllib2.Request(url, None, {'User-Agent': user_agent})
if html:
# already have HTML so just need to make HEAD request for headers
request.get_method = lambda : 'HEAD'
response = urllib2.urlopen(request)
if headers is None:
headers = response.headers
if html is None:
html = response.read()
except Exception, e:
print 'Error:', e
request = None
於是,通過檢視文件,可以知道python 3.x中urllib庫和urilib2庫合併成了urllib庫,因此可以基本可以確定此問題就是這樣產生的。
2、問題解決
這樣的一個問題,最直觀的解決方式也許是直接換成Python2.X的版本來執行這個指令碼,以達到正確使用builtwith這個我們需要的模組。但是如果我們的專案裡面如果又需要使用Python3.X中的模組呢?:)