Windows环境下使用pip安装pycrypto包报错

安装过程与报错结果

PS C:\WINDOWS\system32> py -2 -m pip install pycrypto
You are using pip version 7.0.1, however version 20.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pycrypto
Downloading https://mirrors.aliyun.com/pypi/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz (446kB)
100% |████████████████████████████████| 446kB 952kB/s
Installing collected packages: pycrypto
Running setup.py install for pycrypto
Complete output from command "D:\Program Files\Python\Python27\python.exe" -c "import setuptools, tokenize;__file__='c:\\users\\12944\\appdata\\local\\temp\\pip-build-ttplba\\pycrypto\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\12944\appdata\local\temp\pip-ptr0kq-record\install-record.txt --single-version-externally-managed --compile:
running install
running build
running build_py
creating build
creating build\lib.win32-2.7
creating build\lib.win32-2.7\Crypto
copying lib\Crypto\pct_warnings.py -> build\lib.win32-2.7\Crypto
copying lib\Crypto\__init__.py -> build\lib.win32-2.7\Crypto
creating build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\hashalgo.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\HMAC.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\MD2.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\MD4.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\MD5.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\RIPEMD.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA224.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA256.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA384.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\SHA512.py -> build\lib.win32-2.7\Crypto\Hash
copying lib\Crypto\Hash\__init__.py -> build\lib.win32-2.7\Crypto\Hash
creating build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\AES.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\ARC2.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\ARC4.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\blockalgo.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\Blowfish.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\CAST.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\DES.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\DES3.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\PKCS1_OAEP.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\PKCS1_v1_5.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\XOR.py -> build\lib.win32-2.7\Crypto\Cipher
copying lib\Crypto\Cipher\__init__.py -> build\lib.win32-2.7\Crypto\Cipher
creating build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\asn1.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\Counter.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\number.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\py21compat.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\py3compat.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\randpool.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\RFC1751.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\winrandom.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\_number_new.py -> build\lib.win32-2.7\Crypto\Util
copying lib\Crypto\Util\__init__.py -> build\lib.win32-2.7\Crypto\Util
creating build\lib.win32-2.7\Crypto\Random
copying lib\Crypto\Random\random.py -> build\lib.win32-2.7\Crypto\Random
copying lib\Crypto\Random\_UserFriendlyRNG.py -> build\lib.win32-2.7\Crypto\Random
copying lib\Crypto\Random\__init__.py -> build\lib.win32-2.7\Crypto\Random
creating build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\FortunaAccumulator.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\FortunaGenerator.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\SHAd256.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
copying lib\Crypto\Random\Fortuna\__init__.py -> build\lib.win32-2.7\Crypto\Random\Fortuna
creating build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\fallback.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\nt.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\posix.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\rng_base.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
copying lib\Crypto\Random\OSRNG\__init__.py -> build\lib.win32-2.7\Crypto\Random\OSRNG
creating build\lib.win32-2.7\Crypto\SelfTest
copying lib\Crypto\SelfTest\st_common.py -> build\lib.win32-2.7\Crypto\SelfTest
copying lib\Crypto\SelfTest\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest
creating build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\common.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_AES.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_ARC2.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_ARC4.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_Blowfish.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_CAST.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_DES.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_DES3.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_pkcs1_15.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_pkcs1_oaep.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\test_XOR.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
copying lib\Crypto\SelfTest\Cipher\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Cipher
creating build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\common.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_HMAC.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_MD2.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_MD4.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_MD5.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_RIPEMD.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA224.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA256.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA384.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\test_SHA512.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
copying lib\Crypto\SelfTest\Hash\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Hash
creating build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_AllOrNothing.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_chaffing.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_KDF.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\test_rfc1751.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
copying lib\Crypto\SelfTest\Protocol\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Protocol
creating build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_DSA.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_ElGamal.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_importKey.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\test_RSA.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
copying lib\Crypto\SelfTest\PublicKey\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\PublicKey
creating build\lib.win32-2.7\Crypto\SelfTest\Random
copying lib\Crypto\SelfTest\Random\test_random.py -> build\lib.win32-2.7\Crypto\SelfTest\Random
copying lib\Crypto\SelfTest\Random\test_rpoolcompat.py -> build\lib.win32-2.7\Crypto\SelfTest\Random
copying lib\Crypto\SelfTest\Random\test__UserFriendlyRNG.py -> build\lib.win32-2.7\Crypto\SelfTest\Random
copying lib\Crypto\SelfTest\Random\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Random
creating build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
copying lib\Crypto\SelfTest\Random\Fortuna\test_FortunaAccumulator.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
copying lib\Crypto\SelfTest\Random\Fortuna\test_FortunaGenerator.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
copying lib\Crypto\SelfTest\Random\Fortuna\test_SHAd256.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
copying lib\Crypto\SelfTest\Random\Fortuna\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\Fortuna
creating build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_fallback.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_generic.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_nt.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_posix.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\test_winrandom.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
copying lib\Crypto\SelfTest\Random\OSRNG\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Random\OSRNG
creating build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_asn1.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_Counter.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_number.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\test_winrandom.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
copying lib\Crypto\SelfTest\Util\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Util
creating build\lib.win32-2.7\Crypto\SelfTest\Signature
copying lib\Crypto\SelfTest\Signature\test_pkcs1_15.py -> build\lib.win32-2.7\Crypto\SelfTest\Signature
copying lib\Crypto\SelfTest\Signature\test_pkcs1_pss.py -> build\lib.win32-2.7\Crypto\SelfTest\Signature
copying lib\Crypto\SelfTest\Signature\__init__.py -> build\lib.win32-2.7\Crypto\SelfTest\Signature
creating build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\AllOrNothing.py -> build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\Chaffing.py -> build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\KDF.py -> build\lib.win32-2.7\Crypto\Protocol
copying lib\Crypto\Protocol\__init__.py -> build\lib.win32-2.7\Crypto\Protocol
creating build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\DSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\ElGamal.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\pubkey.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\RSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\_DSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\_RSA.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\_slowmath.py -> build\lib.win32-2.7\Crypto\PublicKey
copying lib\Crypto\PublicKey\__init__.py -> build\lib.win32-2.7\Crypto\PublicKey
creating build\lib.win32-2.7\Crypto\Signature
copying lib\Crypto\Signature\PKCS1_PSS.py -> build\lib.win32-2.7\Crypto\Signature
copying lib\Crypto\Signature\PKCS1_v1_5.py -> build\lib.win32-2.7\Crypto\Signature
copying lib\Crypto\Signature\__init__.py -> build\lib.win32-2.7\Crypto\Signature
running build_ext
building 'Crypto.Random.OSRNG.winrandom' extension
warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
error: Microsoft Visual C++ 9.0 is required (Unable to find vcvarsall.bat). Get it from http://aka.ms/vcpython27

----------------------------------------
Command ""D:\Program Files\Python\Python27\python.exe" -c "import setuptools, tokenize;__file__='c:\\users\\12944\\appdata\\local\\temp\\pip-build-ttplba\\pycrypto\\setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record c:\users\12944\appdata\local\temp\pip-ptr0kq-record\install-record.txt --single-version-externally-managed --compile" failed with error code 1 in c:\users\12944\appdata\local\temp\pip-build-ttplba\pycrypto

解决方案

  刚开始碰到这个问题第一反应是去搜索,但是网上的报错的和我的并不太一样,仔细想想自己很少去解决问题,于是有了此次尝试(幸而此报错较容易解决)。

  在一大串长文中,我找到error(加粗黑色那行),提示是缺少Microsoft Visual C++ 9.0这种环境,后面给出了相关下载地址(标红粗体字),下载安装完后,安装并成功了。如下:

PS C:\WINDOWS\system32> py -2 -m pip install pycrypto
You are using pip version 7.0.1, however version 20.2.3 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.
Collecting pycrypto
Using cached https://mirrors.aliyun.com/pypi/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz
Installing collected packages: pycrypto
Running setup.py install for pycrypto
Successfully installed pycrypto-2.6.1

 

上一篇:win32汇编窗口程序


下一篇:WIN32 枚举窗口 鼠标键盘事件