1. 程式人生 > >Python3.4 安裝 pycrypto 提示錯誤的處理辦法

Python3.4 安裝 pycrypto 提示錯誤的處理辦法

地址 3.4 ges 我們 方案 vs2008 follow void 機器

今天做接口測試,有個接口的參數使用了 AES 加密,開發也提供了加密函數的實現,但是 Python2.6 實現的,我習慣使用的是 Python3.4,於是準備做下兼容處理,結果過程中發現安裝 pycrypto 庫會報錯。

作為測試,定位問題並解決問題乃是我們的強項,於是花了點時間把問題處理了,順便把解決的結果做個記錄,如果後面有同學碰到同樣的問題,也不用重復踩坑了。

先看看我安裝庫用的命令行:

python34 -m pip install pycrypto

下面是報錯信息:

running build_ext
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building ‘Crypto.Random.OSRNG.winrandom‘ extension
error: Microsoft Visual C++ 10.0 is required. Get it with "Microsoft Windows SDK 7.1": www.microsoft.com/download/details.aspx?id=8279

從報錯信息看,就是缺少依賴庫文件,確實,我機器上安裝的是 VS2008,因為用的少一直沒更新,但是提示的是需要 VS2010 支持,總不能因為裝一個庫,我就去裝一個大得多的 VS2010 吧,所以:

方法一:安裝 VS2010,然後設置環境變量

先放棄,實在找不到方法再說。

繼續 Google 發現有同學提供了新的方案:

方法二:卸載 crypto 庫後重新安裝 pycrypto

根據要求依次執行如下命令行:

python34 -m pip uninstall crypto
python34 -m pip install pycrypto

錯誤依舊,報錯信息也是一字沒改,方法無效

繼續看其他方案:

方法三:升級下 setuptools

我也沒搞定這個和問題有啥關系,但是升級下也沒壞處,升,依次執行如下命令行:

python34 -m pip install --upgrade setuptools
python34 -m pip install pycrypto

錯誤依舊,報錯信息也是一字沒改,方法無效

眼瞅著要回頭去找 VS2010 安裝包了,突然發現有人找到了這個庫編譯好的 exe 安裝包,贊,果然還是那句話「有需求的地方,就有人出實現」,就看你能不能找得到了。

方法四:安裝 pycrypto 編譯好的 exe 安裝包

安裝包地址:
http://www.voidspace.org.uk/python/pycrypto-2.6.1/pycrypto-2.6.1.win32-py3.4.exe

親測有效,問題解決。

另外,記得到 Python 安裝目錄下 \Lib\site-packages 去看下,如果 crypto 是全小寫就改成 Crypto,不然引入會報錯。

附上引入代碼:

from Crypto.Cipher import AES

方法四下載地址出處:
https://blog.csdn.net/wjzhangcsu/article/details/75039789

Python3.4 安裝 pycrypto 提示錯誤的處理辦法