本来以为自己的Python3.6早就装好了pycrypto,结果发现只是装在了自己的python2.7,因为想要用python3开发后台,利用pycrypto会省很多事儿,于是pip install pycrypto。
后来会报错误:
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\cl.exe' failed with exit status 1158 command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\cl.exe' failed with exit status 2
然后百度了半天都是瞎扯的,在google上搜到了一个解决方法(假设本机安装了Microsoft Visual Studio2017 Community版):
第一步:将D:\Program Files (x86)\Microsoft Visual Studio\2017\Community\VC\Tools\MSVC\14.10.25017\include\stdint.h文件拷贝到C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt\目录下
第二步:修改C:\Program Files (x86)\Windows Kits\10\Include\10.0.15063.0\ucrt\inttypes.h中的第13行,将
#include
修改为:
#include "stdint.h"
然后再次安装,出现了新问题:
error: command 'C:\\Program Files (x86)\\Microsoft Visual Studio 14.0\\VC\\BIN\\x86_amd64\\link.exe' failed with exit status 1158
然后继续google之,一个外国朋友给了一个解决方法:
第一步:将C:\Program Files (x86)\Windows Kits\10\bin\x64 加入path
第二部:将rc.exe和rcdll.dll两个文件从
C:\Program Files (x86)\Windows Kits\8.1\bin\x86
复制到
C:\Program Files (x86)\Microsoft Visual Studio 14.0\VC\bin
到此,我已经安装成功了,可是import的时候又出现问题:
ModuleNotFoundError: No module named 'Crypto'
原来是因为安装过crypto,再安装pycrypto的时候就会 有冲突,于是卸载掉两个,重新安装pycrypto,新的问题又出现了:
ModuleNotFoundError: No module named winrandom
这次百度解决了:
修改python3安装目录下的 lib/Crypto/Random/OSRNG/nt.py 文件中找到
import winrandom
修改为:
from Crypto.Random.OSRNG import winrandom