简体   繁体   English

使用 pip 安装 pycrypto 失败

[英]Failed installing pycrypto with pip

I encountered a problem when I try to download a certain package:我尝试下载某个package时遇到问题:

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\

I already tried this command:我已经尝试过这个命令:

    pip install --upgrade setuptools

And this still didnt work.这仍然没有用。

The solution was simple解决方案很简单

just只是

    pip uninstall pycrypto
    pip install pycryptodome

And every should just work fine, it worked for me!每个都应该工作正常,它对我有用!

In some cases it is a dependency issue.在某些情况下,这是一个依赖问题。 It can be solved as follows: for python2 run the following command: sudo apt-get install build-essential libssl-dev libffi-dev python-dev它可以解决如下:对于python2运行以下命令: sudo apt-get install build-essential libssl-dev libffi-dev python-dev

For python3 run对于python3运行

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

I fixed same problem in linux running sudo apt-get install pythonX.X-dev before installing pycrypto.在安装 pycrypto 之前,我在运行sudo apt-get install pythonX.X-dev的 linux 中修复了同样的问题。 Replace pythonX.X with your python version eg sudo apt-get install python3.6-dev将 pythonX.X 替换为您的 python 版本,例如sudo apt-get install python3.6-dev

Create new environment for python project for using command conda create -n env_name python=3.6 you to write python version according to your requirements.使用命令 conda create -n env_name python=3.6 为 python 项目创建新环境,您可以根据需要编写 python 版本。 after that you can clone your project in that environment.之后,您可以在该环境中克隆您的项目。 it will work.它会起作用的。

安装python3-devel(对于python3)有助于解决我在致命错误中的问题详细信息:Python.h:没有这样的文件或目录

There is no support whatsoever from the project.该项目没有任何支持。 Specifically in windows.特别是在窗口中。 Pycrypto Issue Link . Pycrypto 问题链接

For ubuntu these answers will work.对于 ubuntu,这些答案将起作用。 But I guess for windows you should switch to pycryptodome as it installs the packages with the same crypto name as pycrypto,但我想对于 Windows,你应该切换到 pycryptodome,因为它会安装与 pycrypto 具有相同加密名称的软件包,

After so many try with errors, now i have one solution for pycrypto and splunklib经过这么多的错误尝试,现在我有一个 pycrypto 和 splunklib 的解决方案

Code of my Docker file that need to update :

FROM python:3.8-slim
RUN mkdir /app
WORKDIR /app
COPY requirements.txt /app
RUN pip install --no-cache-dir -r requirements.txt
RUN apt-get update && apt-get install -y --no-install-recommends gcc build- 
essential postgresql libpq-dev vim
COPY . /app
WORKDIR /app/api
EXPOSE 3000
CMD ["uvicorn", "api:app", "--host", "0.0.0.0",  "--port", "3000", "--reload"]

requirements.txt have requirements.txt 有

... ...

pycryptodome==3.14.1 pycryptodome==3.14.1

splunk-sdk==1.6.19 splunk-sdk==1.6.19

splunklib==1.0.0 splunklib==1.0.0

.... ……

below error was showing for me when try to run above docker file code尝试在 docker 文件代码之上运行时,向我显示以下错误

            Building wheel for splunk-sdk (setup.py): started

            #9 80.50   Building wheel for splunk-sdk (setup.py): finished with status 'done'

            #9 80.51   Created wheel for splunk-sdk: filename=splunk_sdk-1.6.20-py3-none-any.whl 
            size=124053 sha256=ddce3663bb166c6732e18f1ed95187528c2a666b996eff7dfac00302cf9771d7

            #9 80.51   Stored in directory: /tmp/pip-ephem-wheel-cache-
            frl315nd/wheels/f7/a1/72/b2474c8ffe6b02fe24078e3413ed668fe6b85dfb17cd8e64c2

            #9 80.51   Building wheel for pycrypto (setup.py): started

            #9 92.72   Building wheel for pycrypto (setup.py): finished with status 'error'
            #9 92.76   error: subprocess-exited-with-error

            Running setup.py install for pycrypto: started

            #9 106.8   Running setup.py install for pycrypto: finished with status 'error'

            #9 106.9   error: subprocess-exited-with-error note: This error originates from a subprocess, and is likely not a problem with pip.

            #9 106.9 error: legacy-install-failure
            #9 106.9 Encountered error while trying to install package.
            #9 106.9 pycrypto

**Solution ** - Now i am updating docker file with below code **解决方案** - 现在我正在使用以下代码更新 docker 文件

            FROM python:3.8-slim
            RUN mkdir /app
            WORKDIR /app
            COPY requirements.txt /app
            RUN apt-get update && apt-get install -y --no-install-recommends gcc build-essential postgresql libpq-dev vim
            RUN apt-get install -y --no-install-recommends libssl-dev libffi-dev
            RUN pip install --no-cache-dir -r requirements.txt
            COPY . /app
            WORKDIR /app/api
            EXPOSE 3000
            CMD ["uvicorn", "api:app", "--host", "0.0.0.0",  "--port", "3000", "--reload"]

在此处输入图像描述

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM