>>> import builtwith Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/python3.5/site-packages/builtwith/__init__.py", line 43 except Exception, e: ^ SyntaxError: invalid syntax >>> import builtwith Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/python3.5/site-packages/builtwith/__init__.py", line 44 print 'Error:', e ^ SyntaxError: Missing parentheses in call to 'print' >>> import builtwith Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/python3.5/site-packages/builtwith/__init__.py", line 44 print() 'Error:', e ^ SyntaxError: invalid syntax >>> import builtwith Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/python3.5/site-packages/builtwith/__init__.py", line 44 print 'Error:', e ^ SyntaxError: Missing parentheses in call to 'print' >>> import builtwith Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/python3.5/site-packages/builtwith/__init__.py", line 138 print '%s: %s' % result ^ SyntaxError: Missing parentheses in call to 'print' >>> import builtwith Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/python3.5/site-packages/builtwith/__init__.py", line 140 print 'Usage: %s url1 [url2 url3 ...]' % sys.argv[0] ^ SyntaxError: Missing parentheses in call to 'print' >>> import builtwith Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/python3/lib/python3.5/site-packages/builtwith/__init__.py", line 5, in <module> import urllib2 ImportError: No module named 'urllib2'
因為Python2中的Exception,e 的寫法不再支持,需要修改成Exception as e.
(這句話看了我半天, 明明說是拋出了Exception e, 卻硬是沒看到e的信息,火大!)
另外Python2中的print語句在Python3中需要寫成print(),按照錯誤提示修改對應行數即可。
語法問題修改之后,會報一個沒有安裝urllib2的包的錯誤。
通過pip install urllib2也會提示找不到包。
這是因為builtwith依賴於urllib2包。但Pyhton2中的urllib2工具包,在Python3中分拆成了urllib.request和urllib.error兩個包。就導致找不到包,同時也沒辦法安裝。
所以需要install urllib.request和install urllib.error 兩個包,然后將builtwith包中的import urllib2修改為import urllib.request 和import urllib.error。
同時代碼中的方法函數也需要修改,基本就是將urllib2.xxx修改為urllib.request.xxx。
urllib2修改后對應的函數列表見:https://docs.python.org/2/library/urllib2.html。