一般在官方網站下載pycrypto:
https://www.dlitz.net/software/pycrypto/
然后使用命令就可以安裝成功了:
python setup.py build #編譯
python setup.py install #安裝
但是在windows下會報錯:
Python error: Unable to find vcvarsall.bat
凡是安裝和操作系統底層密切相關的Python擴展,幾乎都會遇到這個錯誤。比如PIL, Pillow(兩個圖形庫),greenlet以及其基礎之上的eventlet, gevent微線程並發庫等等。當然了有一些情況下,你不必徹底解決它,你可以選擇windows版本,那么也就只能使用閹割版功能。
2.windows安裝使用這些偏底層的Python擴展太不爽了,怎么徹底解決
error: Unable to find vcvarsall.bat 呢?
①
不要按網上說的,安裝MinGW,然后在“..python安裝路徑...
\Lib\distutils”下新建一個文件
distutils.cfg,在這文件里面
指定編譯器為mingw32
原因是什么,可以百度一下mingw是什么,畢竟不是GCC,又不如VC接windows的地氣,編譯出來的東西,安裝上了也有不好使的時候。甚至我遇到MinGW還無法編譯greenlet0.4.1,導致greenlet無法源碼安裝。MinGW經常command 'gcc' failed with exit status 1 或者error: unrecognized command line option '-mno-cygwin'。即使編譯通過了,安裝上了,你安裝的Python標准庫不是由mingw編譯的,你的擴展包卻是mingw編譯的,誰也不敢保證完全兼容或者說質量跟得上,說不准一些莫名其妙的神經質錯誤。
如果Python版本小於2.7,強烈建議使用 VS08版,用2010或者更高可能部分擴展不好使。(至於Python版本和VS版本之間的對應關系請參考官方文檔:點此查看)
For Windows installations: While running setup.py for package installations, Python 2.7 searches for an installed Visual Studio 2008. You can trick Python to use a newer Visual Studio by setting the correct path in VS90COMNTOOLS environment variable before calling setup.py. If you have Visual Studio 2010 installed, execute SET VS90COMNTOOLS=%VS100COMNTOOLS% or with Visual Studio 2012 installed (Visual Studio Version 11) SET VS90COMNTOOLS=%VS110COMNTOOLS% or with Visual Studio 2013 installed (Visual Studio Version 12) SET VS90COMNTOOLS=%VS120COMNTOOLS%
然后注意這一步很重要:命令行下執行
SET VS90COMNTOOLS=%VS100COMNTOOLS%
如果你安裝的是 2012 版 SET VS90COMNTOOLS=%VS110COMNTOOLS%
如果你安裝的是 2013版 SET VS90COMNTOOLS=%VS120COMNTOOLS%
或者更暴力,直接配置系統環境變量 VS90COMNTOOLS指向 %VS你的版本COMNTOOLS%
你還可以更暴力,在“..python安裝路徑...\Lib\distutils目錄下有個msvc9compiler.py找到243行
toolskey = "VS%0.f0COMNTOOLS" % version 直接改為 toolskey = "VS你的版本COMNTOOLS"(這個就是為什么要配 ”VS90COMNTOOLS“ 的原因,因為人家文件名都告訴你了是 Microsoft vc 9的compiler, 代碼都寫死了要vc9的comntools,就要找這個玩意兒,找不到不干活)
這么做的理由是Python2.7 擴展包是可以用08版或者更高的VS編譯的,其setup.py(安裝腳本)都是去windows系統尋找08版的VS,所以設置VS90的path
③
安裝VS后該重啟的重啟,clean一下之前安裝Python擴展失敗的殘留文件,然后 直接下載 pil pillow greenlet eventlet等源碼,解壓后python setup.py build發現都可以編譯了。接下來就換成 python setup.py install安裝吧。