1. 程式人生 > >Win7 X64 python3安裝pycrypto, Unable to find vcvarsall.bat

Win7 X64 python3安裝pycrypto, Unable to find vcvarsall.bat

Unable to find vcvarsall.bat, 看起來要無解啦。

windows 7 x64, VS2013(誰現在還裝2010啊),python3.4

又是一輪搜尋http://ljhzzyx.blog.163.com/blog/static/3838031220136592824697/,總不能在去裝個VS2008把,也不想裝MinGW,看後面步驟就頭疼。之前也嘗試過上面的VS2010的方法,但是不行。又要用這麼辦,硬著頭皮來吧。

從提示的Error看就是找不到vcvarsall.bat檔案,那我們就幫他找到。

開啟C:\Python34\Lib\distutils\msvc9compiler.py 仔細看。找到了他尋找VC路徑的函式find_vcvarsall,這個不是關鍵,因為報錯的不是這裡。往下看第二個同樣的錯誤在query_vcvarsall函式裡面,就這裡啦

原來的程式碼是:

    vcvarsall = find_vcvarsall(version)

因為上面那個函式找不到正確的地方,如果你想知道他找到了什麼你可以直接在裡面敲一行log.info(),當然注意你的程式碼格式,錯了會提示你關於空格或者Tab的問題

改成下面的程式碼:VS2013,其他的自己注意自己的VS版本

version = 12.0

vcvarsall = "C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\\vcvarsall.bat"

現在繼續你之前在cmd裡面的build命令,有個警告,但應該是過了。別猶豫 python setup.py install,安裝成功

下面是截圖:


然後用API DOC裡面程式碼試一下AES

from Crypto.Cipher import AES
from Crypto import Random


key = b'Sixteen byte key'
iv = Random.new().read(AES.block_size)
cipher = AES.new(key, AES.MODE_CFB, iv)

msg = cipher.encrypt(b'Attack at dawn')

print(iv + msg)

decryptor = AES.new(key, AES.MODE_CFB, iv)

print(decryptor.decrypt(msg))

結果正常輸出: