日韩黑丝制服一区视频播放|日韩欧美人妻丝袜视频在线观看|九九影院一级蜜桃|亚洲中文在线导航|青草草视频在线观看|婷婷五月色伊人网站|日本一区二区在线|国产AV一二三四区毛片|正在播放久草视频|亚洲色图精品一区

分享

徹底解決 error: Unable to find vcvarsall.bat

 天才白癡書館 2015-04-14

1.windows上做Python開發(fā),搭環(huán)境還真不比Linux容易。error: Unable to find vcvarsall.bat這個錯誤眼熟吧?

凡是安裝和操作系統(tǒng)底層密切相關(guān)的Python擴(kuò)展,幾乎都會遇到這個錯誤。比如PIL, Pillow(兩個圖形庫),greenlet以及其基礎(chǔ)之上的eventlet, gevent微線程并發(fā)庫等等。當(dāng)然了有一些情況下,你不必徹底解決它,你可以選擇windows版本,那么也就只能使用閹割版功能。

PIL有windows版,即使安裝上了,64位Python一定報(bào)錯 The _imaging C module is not installed, 除非自己重新編譯安裝。此外與CPU位數(shù)可能有關(guān)系,僅個人猜測。本人兩個機(jī)器都是Win7旗艦版64位,安裝的32位Python,其中一個CPU是64位的也遇到這個錯誤,32位的CPU則不報(bào)錯。

為了解決64位CPU報(bào)錯,于是安裝Pillow的windows版,確實(shí)能正常使用,不再報(bào)錯。但是圖片效果極不理想,圖片里面用到font就悲劇,出個驗(yàn)證碼的圖片都難以辨認(rèn)。

greenlet也可以安裝windows版,有可能報(bào)錯加載動態(tài)鏈接庫失敗,比如”ImportError: DLL load failed: %1 不是有效的 Win32 應(yīng)用程序。“不幸我也遇到了。


2.windows安裝使用這些偏底層的Python擴(kuò)展太不爽了,怎么徹底解決 error: Unable to find vcvarsall.bat 呢?

    1.不要按網(wǎng)上說的,安裝MinGW,然后在“..python安裝路徑...\Lib\distutils”下新建一個文件distutils.cfg,在這文件里面指定編譯器為mingw32

       如:

[build]
compiler=mingw32
    原因是什么,可以百度一下mingw是什么,畢竟不是GCC,又不如VC接windows的地氣,編譯出來的東西,安裝上了也有不好使的時候。甚至我遇到MinGW還無法編譯greenlet0.4.1,導(dǎo)致greenlet無法源碼安裝。MinGW經(jīng)常command 'gcc' failed with exit status 1 或者error: unrecognized command line option '-mno-cygwin'。即使編譯通過了,安裝上了,你安裝的Python標(biāo)準(zhǔn)庫不是由mingw編譯的,你的擴(kuò)展包卻是mingw編譯的,誰也不敢保證完全兼容或者說質(zhì)量跟得上,說不準(zhǔn)一些莫名其妙的神經(jīng)質(zhì)錯誤。


     2.去下載安裝VS2010(08版貌似也行,不過沒必要用舊版,指不定哪個庫又無法編譯),給個地址(百度的云盤  國內(nèi)應(yīng)該速度可以)

http://pan.baidu.com/share/link?shareid=1609273194&uk=3255422755

   然后注意這一步很重要:命令行下執(zhí)行 SET VS90COMNTOOLS=%VS100COMNTOOLS%

   如果你安裝的是 2012 版 SET VS90COMNTOOLS=%VS110COMNTOOLS%

   如果你安裝的是 2013版 SET VS90COMNTOOLS=%VS120COMNTOOLS%

   或者更暴力,直接配置系統(tǒng)環(huán)境變量 VS90COMNTOOLS指向 %VS你的版本COMNTOOLS%

   你還可以更暴力,在“..python安裝路徑...\Lib\distutils目錄下有個msvc9compiler.py找到243行  

                  toolskey = "VS%0.f0COMNTOOLS" % version   直接改為 toolskey = "VS你的版本COMNTOOLS"(這個就是為什么要配 ”VS90COMNTOOLS“ 的原因,因?yàn)槿思椅募几嬖V你了是  Microsoft vc 9的compiler,   代碼都寫死了要vc9的comntools,就要找這個玩意兒,找不到不干活)

   這么做的理由是Python2。7 擴(kuò)展包是可以用08版或者更高的VS編譯的,其setup.py(安裝腳本)都是去windows系統(tǒng)尋找08版的VS,所以設(shè)置VS90的path

   如果Python版本小于2.7,強(qiáng)烈建議使用 VS08版,用2010或者更高可能部分?jǐn)U展不好使。給個例子:

    http:///questions/6551724/how-do-i-point-easy-install-to-vcvarsall-bat    這個例子說明 VS2010不適合Python2.6


    3.安裝VS后該重啟的重啟,clean一下之前安裝Python擴(kuò)展失敗的殘留文件,然后 直接下載 pil   pillow greenlet  eventlet等源碼,解壓后python setup.py build發(fā)現(xiàn)都可以編譯了。接下來就換成 python setup.py install安裝吧。

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報(bào)。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多