安装pycrypto失败

S. *_*ayn 6 python pip pycrypto python-2.7

我尝试下载某个软件包时遇到问题:

C:\Python27\Scripts>pip install pycrypto

Collecting pycrypto
Using cached https://files.pythonhosted.org/packages/60/db/645aa9af249f059cc3a368b118de33889219e0362141e75d4eaf6f80f163/pycrypto-2.6.1.tar.gz
Installing collected packages: pycrypto
  Running setup.py install for pycrypto ... error
    Complete output from command c:\python27\python.exe -u -c "import setuptools
, tokenize;__file__='c:\\users\\beheer~1\\appdata\\local\\temp\\pip-install-_luv
op\\pycrypto\\setup.py';f=getattr(tokenize, 'open', open)(__file__);code=f.read(
).replace('\r\n', '\n');f.close();exec(compile(code, __file__, 'exec'))" install
 --record c:\users\beheer~1\appdata\local\temp\pip-record-jct20j\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\R
andom\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\Ra
ndom\OSRNG
    copying lib\Crypto\Random\OSRNG\nt.py -> build\lib.win32-2.7\Crypto\Random\O
SRNG
    copying lib\Crypto\Random\OSRNG\posix.py -> build\lib.win32-2.7\Crypto\Rando
m\OSRNG
    copying lib\Crypto\Random\OSRNG\rng_base.py -> build\lib.win32-2.7\Crypto\Ra
ndom\OSRNG
    copying lib\Crypto\Random\OSRNG\__init__.py -> build\lib.win32-2.7\Crypto\Ra
ndom\OSRNG
    creating build\lib.win32-2.7\Crypto\SelfTest
    copying lib\Crypto\SelfTest\st_common.py -> build\lib.win32-2.7\Crypto\SelfT
est
    copying lib\Crypto\SelfTest\__init__.py -> build\lib.win32-2.7\Crypto\SelfTe
st
    creating build\lib.win32-2.7\Crypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\common.py -> build\lib.win32-2.7\Crypto\S
elfTest\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\Crypt
o\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_ARC4.py -> build\lib.win32-2.7\Crypt
o\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_Blowfish.py -> build\lib.win32-2.7\C
rypto\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_CAST.py -> build\lib.win32-2.7\Crypt
o\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\Crypt
o\SelfTest\Cipher
    copying lib\Crypto\SelfTest\Cipher\test_pkcs1_15.py -> build\lib.win32-2.7\C
rypto\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\Sel
fTest\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\S
elfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD4.py -> build\lib.win32-2.7\Crypto\S
elfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_MD5.py -> build\lib.win32-2.7\Crypto\S
elfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_RIPEMD.py -> build\lib.win32-2.7\Crypt
o\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA.py -> build\lib.win32-2.7\Crypto\S
elfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA224.py -> build\lib.win32-2.7\Crypt
o\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA256.py -> build\lib.win32-2.7\Crypt
o\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA384.py -> build\lib.win32-2.7\Crypt
o\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\test_SHA512.py -> build\lib.win32-2.7\Crypt
o\SelfTest\Hash
    copying lib\Crypto\SelfTest\Hash\__init__.py -> build\lib.win32-2.7\Crypto\S
elfTest\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\Cryp
to\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\Cryp
to\SelfTest\Protocol
    creating build\lib.win32-2.7\Crypto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\test_DSA.py -> build\lib.win32-2.7\Cry
pto\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\Cry
pto\SelfTest\PublicKey
    copying lib\Crypto\SelfTest\PublicKey\__init__.py -> build\lib.win32-2.7\Cry
pto\SelfTest\PublicKey
    creating build\lib.win32-2.7\Crypto\SelfTest\Random
    copying lib\Crypto\SelfTest\Random\test_random.py -> build\lib.win32-2.7\Cry
pto\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.win
32-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 -> bui
ld\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.win3
2-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\C
rypto\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.win3
2-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\Cryp
to\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_number.py -> build\lib.win32-2.7\Crypt
o\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\test_winrandom.py -> build\lib.win32-2.7\Cr
ypto\SelfTest\Util
    copying lib\Crypto\SelfTest\Util\__init__.py -> build\lib.win32-2.7\Crypto\S
elfTest\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\Cry
pto\SelfTest\Signature
    creating build\lib.win32-2.7\Crypto\Protocol
    copying lib\Crypto\Protocol\AllOrNothing.py -> build\lib.win32-2.7\Crypto\Pr
otocol
    copying lib\Crypto\Protocol\Chaffing.py -> build\lib.win32-2.7\Crypto\Protoc
ol
    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\Protoc
ol
    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\Public
Key
    copying lib\Crypto\PublicKey\pubkey.py -> build\lib.win32-2.7\Crypto\PublicK
ey
    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\Publ
icKey
    copying lib\Crypto\PublicKey\__init__.py -> build\lib.win32-2.7\Crypto\Publi
cKey
    creating build\lib.win32-2.7\Crypto\Signature
    copying lib\Crypto\Signature\PKCS1_PSS.py -> build\lib.win32-2.7\Crypto\Sign
ature
    copying lib\Crypto\Signature\PKCS1_v1_5.py -> build\lib.win32-2.7\Crypto\Sig
nature
    copying lib\Crypto\Signature\__init__.py -> build\lib.win32-2.7\Crypto\Signa
ture
    running build_ext
    warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastm
ath.
    building 'Crypto.Random.OSRNG.winrandom' extension
    error: Microsoft Visual C++ 9.0 is required. Get it from http://aka.ms/vcpyt
hon27


----------------------------------------
Command "c:\python27\python.exe -u -c "import setuptools, 
tokenize;__file__='c:\
\users\\beheer~1\\appdata\\local\\temp\\pip-install- 
_luvop\\pycrypto\\setup.py';
f=getattr(tokenize, 'open', open) 
(__file__);code=f.read().replace('\r\n', '\n');
f.close();exec(compile(code, __file__, 'exec'))" install --record 
c:\users\behee
r~1\appdata\local\temp\pip-record-jct20j\install-record.txt --single- 
version-ext
ernally-managed --compile" failed with error code 1 in 
c:\users\beheer~1\appdata
\local\temp\pip-install-_luvop\pycrypto\
Run Code Online (Sandbox Code Playgroud)

我已经尝试过这个命令:

    pip install --upgrade setuptools
Run Code Online (Sandbox Code Playgroud)

而这仍然没有奏效.

S. *_*ayn 23

解决方案很简单

只是

    pip uninstall pycrypto
    pip install pycryptodome
Run Code Online (Sandbox Code Playgroud)

每一个都应该工作正常,它对我有用!

  • 这是一个解决方法,而不是解决方案,但是它仍然有用,因为根据pycrypto的“问题”部分上的[this post](https://github.com/dlitz/pycrypto/issues/238)官方存储库,似乎该软件包在过去的几年中根本没有维护过。他们的建议是改为安装“ pycryptodome”,因为它仍会创建一个具有相同名称空间的“ Crypto”软件包,因此可以与基于“ pycrypto”库的源代码一起使用。 (2认同)

小智 6

在安装 pycrypto 之前,我在运行 linux 时修复了同样的问题sudo apt-get install pythonX.X-dev。将 pythonX.X 替换为您的 python 版本,例如sudo apt-get install python3.6-dev


Nje*_*rus 5

在某些情况下,这是一个依赖性问题。可以解决以下问题:用于python2运行以下命令: sudo apt-get install build-essential libssl-dev libffi-dev python-dev

对于python3运行

sudo apt-get install build-essential libssl-dev libffi-dev python3-dev

  • 这是正确答案!缺少已安装的库是导致此错误的原因。不要急于安装替代品。 (2认同)
  • 你能给出 Windows 的替代命令吗? (2认同)