轉自:http://blog.csdn.net/qq_27657429/article/details/52653164
最近在看PACKT的Python Web Scraping, 書上用的是Python 2.X,但是自己電腦上卻用的Python 3.4。
版本升級沒什么好說的,只是很多的工具包並沒有跟着升級。同時目前很多經典教材都是2.X為基礎的,並沒有跟着升級3.X的內容。十分無語。
搜了下知乎,發現許多人還是認可Python3的升級。
只是我記得Python的快速原型部署一直是程序員津津樂道的話題,現在因為許多常用lib的原因,糾結在語言升級后工具的安裝上,令人十分火大。
Windows沒有設置pip的路徑,所有自己cmd路徑指向python34\liib\site-packages下:
Python pip install builtwith
然后在Python cmd import。(話說能弄個友好一點的cmd么?簡直一肚子火)
安裝的問題主要涉及到Python3的對Exception和print的修改
# import builtwith
出現的錯誤為:
File "<stdin>"m line 1, in <module>
File "...\site-packages\builtwith\__init__.py", line44
"Exception, e"
因為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。
