windows 下的python 安裝pycrypto

通常在官方網站下載pycrypto:html

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編譯的,誰也不敢保證徹底兼容或者說質量跟得上,說不許一些莫名其妙的神經質錯誤。
 
②  stackoverflow.com上的解決方案爲:stackoverflow.com原文地址 (建議下載安裝vs解決)
     若是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%python

而後注意這一步很重要:命令行下執行  SET VS90COMNTOOLS=%VS100COMNTOOLS%

   若是你安裝的是 2012 版 SET VS90COMNTOOLS=%VS110COMNTOOLS%windows

   若是你安裝的是 2013版 SET VS90COMNTOOLS=%VS120COMNTOOLS%api

   或者更暴力,直接配置系統環境變量 VS90COMNTOOLS指向 %VS你的版本COMNTOOLS%併發

   你還能夠更暴力,在「..python安裝路徑...\Lib\distutils目錄下有個msvc9compiler.py找到243行  網站

                  toolskey = "VS%0.f0COMNTOOLS" % version   直接改成 toolskey = "VS你的版本COMNTOOLS"(這個就是爲何要配 」VS90COMNTOOLS「 的緣由,由於人家文件名都告訴你了是  Microsoft vc 9的compiler,   代碼都寫死了要vc9的comntools,就要找這個玩意兒,找不到不幹活)ui

   這麼作的理由是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安裝吧。
相關文章
相關標籤/搜索