Failed installing pycrypto with pip

Question:

I encountered a problem when I try to download a certain package:

C:Python27Scripts>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:python27python.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('rn', 'n');f.close();exec(compile(code, __file__, 'exec'))" install
 --record c:usersbeheer~1appdatalocaltemppip-record-jct20jinstall-record.
txt --single-version-externally-managed --compile:
    running install
    running build
    running build_py
    creating build
    creating buildlib.win32-2.7
    creating buildlib.win32-2.7Crypto
    copying libCryptopct_warnings.py -> buildlib.win32-2.7Crypto
    copying libCrypto__init__.py -> buildlib.win32-2.7Crypto
    creating buildlib.win32-2.7CryptoHash
    copying libCryptoHashhashalgo.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashHMAC.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashMD2.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashMD4.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashMD5.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashRIPEMD.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashSHA.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashSHA224.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashSHA256.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashSHA384.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHashSHA512.py -> buildlib.win32-2.7CryptoHash
    copying libCryptoHash__init__.py -> buildlib.win32-2.7CryptoHash
    creating buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherAES.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherARC2.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherARC4.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherblockalgo.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherBlowfish.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherCAST.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherDES.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherDES3.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipherPKCS1_OAEP.py -> buildlib.win32-2.7CryptoCipher

    copying libCryptoCipherPKCS1_v1_5.py -> buildlib.win32-2.7CryptoCipher

    copying libCryptoCipherXOR.py -> buildlib.win32-2.7CryptoCipher
    copying libCryptoCipher__init__.py -> buildlib.win32-2.7CryptoCipher
    creating buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilasn1.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilCounter.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilnumber.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilpy21compat.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilpy3compat.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilrandpool.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilRFC1751.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtilwinrandom.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtil_number_new.py -> buildlib.win32-2.7CryptoUtil
    copying libCryptoUtil__init__.py -> buildlib.win32-2.7CryptoUtil
    creating buildlib.win32-2.7CryptoRandom
    copying libCryptoRandomrandom.py -> buildlib.win32-2.7CryptoRandom
    copying libCryptoRandom_UserFriendlyRNG.py -> buildlib.win32-2.7Crypto
Random
    copying libCryptoRandom__init__.py -> buildlib.win32-2.7CryptoRandom
    creating buildlib.win32-2.7CryptoRandomFortuna
    copying libCryptoRandomFortunaFortunaAccumulator.py -> buildlib.win32-2
.7CryptoRandomFortuna
    copying libCryptoRandomFortunaFortunaGenerator.py -> buildlib.win32-2.7
CryptoRandomFortuna
    copying libCryptoRandomFortunaSHAd256.py -> buildlib.win32-2.7CryptoR
andomFortuna
    copying libCryptoRandomFortuna__init__.py -> buildlib.win32-2.7Crypto
RandomFortuna
    creating buildlib.win32-2.7CryptoRandomOSRNG
    copying libCryptoRandomOSRNGfallback.py -> buildlib.win32-2.7CryptoRa
ndomOSRNG
    copying libCryptoRandomOSRNGnt.py -> buildlib.win32-2.7CryptoRandomO
SRNG
    copying libCryptoRandomOSRNGposix.py -> buildlib.win32-2.7CryptoRando
mOSRNG
    copying libCryptoRandomOSRNGrng_base.py -> buildlib.win32-2.7CryptoRa
ndomOSRNG
    copying libCryptoRandomOSRNG__init__.py -> buildlib.win32-2.7CryptoRa
ndomOSRNG
    creating buildlib.win32-2.7CryptoSelfTest
    copying libCryptoSelfTestst_common.py -> buildlib.win32-2.7CryptoSelfT
est
    copying libCryptoSelfTest__init__.py -> buildlib.win32-2.7CryptoSelfTe
st
    creating buildlib.win32-2.7CryptoSelfTestCipher
    copying libCryptoSelfTestCiphercommon.py -> buildlib.win32-2.7CryptoS
elfTestCipher
    copying libCryptoSelfTestCiphertest_AES.py -> buildlib.win32-2.7Crypto
SelfTestCipher
    copying libCryptoSelfTestCiphertest_ARC2.py -> buildlib.win32-2.7Crypt
oSelfTestCipher
    copying libCryptoSelfTestCiphertest_ARC4.py -> buildlib.win32-2.7Crypt
oSelfTestCipher
    copying libCryptoSelfTestCiphertest_Blowfish.py -> buildlib.win32-2.7C
ryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_CAST.py -> buildlib.win32-2.7Crypt
oSelfTestCipher
    copying libCryptoSelfTestCiphertest_DES.py -> buildlib.win32-2.7Crypto
SelfTestCipher
    copying libCryptoSelfTestCiphertest_DES3.py -> buildlib.win32-2.7Crypt
oSelfTestCipher
    copying libCryptoSelfTestCiphertest_pkcs1_15.py -> buildlib.win32-2.7C
ryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_pkcs1_oaep.py -> buildlib.win32-2.7
CryptoSelfTestCipher
    copying libCryptoSelfTestCiphertest_XOR.py -> buildlib.win32-2.7Crypto
SelfTestCipher
    copying libCryptoSelfTestCipher__init__.py -> buildlib.win32-2.7Crypto
SelfTestCipher
    creating buildlib.win32-2.7CryptoSelfTestHash
    copying libCryptoSelfTestHashcommon.py -> buildlib.win32-2.7CryptoSel
fTestHash
    copying libCryptoSelfTestHashtest_HMAC.py -> buildlib.win32-2.7Crypto
SelfTestHash
    copying libCryptoSelfTestHashtest_MD2.py -> buildlib.win32-2.7CryptoS
elfTestHash
    copying libCryptoSelfTestHashtest_MD4.py -> buildlib.win32-2.7CryptoS
elfTestHash
    copying libCryptoSelfTestHashtest_MD5.py -> buildlib.win32-2.7CryptoS
elfTestHash
    copying libCryptoSelfTestHashtest_RIPEMD.py -> buildlib.win32-2.7Crypt
oSelfTestHash
    copying libCryptoSelfTestHashtest_SHA.py -> buildlib.win32-2.7CryptoS
elfTestHash
    copying libCryptoSelfTestHashtest_SHA224.py -> buildlib.win32-2.7Crypt
oSelfTestHash
    copying libCryptoSelfTestHashtest_SHA256.py -> buildlib.win32-2.7Crypt
oSelfTestHash
    copying libCryptoSelfTestHashtest_SHA384.py -> buildlib.win32-2.7Crypt
oSelfTestHash
    copying libCryptoSelfTestHashtest_SHA512.py -> buildlib.win32-2.7Crypt
oSelfTestHash
    copying libCryptoSelfTestHash__init__.py -> buildlib.win32-2.7CryptoS
elfTestHash
    creating buildlib.win32-2.7CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_AllOrNothing.py -> buildlib.win32
-2.7CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_chaffing.py -> buildlib.win32-2.7
CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_KDF.py -> buildlib.win32-2.7Cryp
toSelfTestProtocol
    copying libCryptoSelfTestProtocoltest_rfc1751.py -> buildlib.win32-2.7
CryptoSelfTestProtocol
    copying libCryptoSelfTestProtocol__init__.py -> buildlib.win32-2.7Cryp
toSelfTestProtocol
    creating buildlib.win32-2.7CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_DSA.py -> buildlib.win32-2.7Cry
ptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_ElGamal.py -> buildlib.win32-2.7
CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_importKey.py -> buildlib.win32-2
.7CryptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKeytest_RSA.py -> buildlib.win32-2.7Cry
ptoSelfTestPublicKey
    copying libCryptoSelfTestPublicKey__init__.py -> buildlib.win32-2.7Cry
ptoSelfTestPublicKey
    creating buildlib.win32-2.7CryptoSelfTestRandom
    copying libCryptoSelfTestRandomtest_random.py -> buildlib.win32-2.7Cry
ptoSelfTestRandom
    copying libCryptoSelfTestRandomtest_rpoolcompat.py -> buildlib.win32-2.
7CryptoSelfTestRandom
    copying libCryptoSelfTestRandomtest__UserFriendlyRNG.py -> buildlib.win
32-2.7CryptoSelfTestRandom
    copying libCryptoSelfTestRandom__init__.py -> buildlib.win32-2.7Crypto
SelfTestRandom
    creating buildlib.win32-2.7CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortunatest_FortunaAccumulator.py -> bui
ldlib.win32-2.7CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortunatest_FortunaGenerator.py -> build
lib.win32-2.7CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortunatest_SHAd256.py -> buildlib.win3
2-2.7CryptoSelfTestRandomFortuna
    copying libCryptoSelfTestRandomFortuna__init__.py -> buildlib.win32-2.
7CryptoSelfTestRandomFortuna
    creating buildlib.win32-2.7CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_fallback.py -> buildlib.win32
-2.7CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_generic.py -> buildlib.win32-
2.7CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_nt.py -> buildlib.win32-2.7C
ryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_posix.py -> buildlib.win32-2.
7CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNGtest_winrandom.py -> buildlib.win3
2-2.7CryptoSelfTestRandomOSRNG
    copying libCryptoSelfTestRandomOSRNG__init__.py -> buildlib.win32-2.7
CryptoSelfTestRandomOSRNG
    creating buildlib.win32-2.7CryptoSelfTestUtil
    copying libCryptoSelfTestUtiltest_asn1.py -> buildlib.win32-2.7Crypto
SelfTestUtil
    copying libCryptoSelfTestUtiltest_Counter.py -> buildlib.win32-2.7Cryp
toSelfTestUtil
    copying libCryptoSelfTestUtiltest_number.py -> buildlib.win32-2.7Crypt
oSelfTestUtil
    copying libCryptoSelfTestUtiltest_winrandom.py -> buildlib.win32-2.7Cr
yptoSelfTestUtil
    copying libCryptoSelfTestUtil__init__.py -> buildlib.win32-2.7CryptoS
elfTestUtil
    creating buildlib.win32-2.7CryptoSelfTestSignature
    copying libCryptoSelfTestSignaturetest_pkcs1_15.py -> buildlib.win32-2.
7CryptoSelfTestSignature
    copying libCryptoSelfTestSignaturetest_pkcs1_pss.py -> buildlib.win32-2
.7CryptoSelfTestSignature
    copying libCryptoSelfTestSignature__init__.py -> buildlib.win32-2.7Cry
ptoSelfTestSignature
    creating buildlib.win32-2.7CryptoProtocol
    copying libCryptoProtocolAllOrNothing.py -> buildlib.win32-2.7CryptoPr
otocol
    copying libCryptoProtocolChaffing.py -> buildlib.win32-2.7CryptoProtoc
ol
    copying libCryptoProtocolKDF.py -> buildlib.win32-2.7CryptoProtocol
    copying libCryptoProtocol__init__.py -> buildlib.win32-2.7CryptoProtoc
ol
    creating buildlib.win32-2.7CryptoPublicKey
    copying libCryptoPublicKeyDSA.py -> buildlib.win32-2.7CryptoPublicKey
    copying libCryptoPublicKeyElGamal.py -> buildlib.win32-2.7CryptoPublic
Key
    copying libCryptoPublicKeypubkey.py -> buildlib.win32-2.7CryptoPublicK
ey
    copying libCryptoPublicKeyRSA.py -> buildlib.win32-2.7CryptoPublicKey
    copying libCryptoPublicKey_DSA.py -> buildlib.win32-2.7CryptoPublicKey

    copying libCryptoPublicKey_RSA.py -> buildlib.win32-2.7CryptoPublicKey

    copying libCryptoPublicKey_slowmath.py -> buildlib.win32-2.7CryptoPubl
icKey
    copying libCryptoPublicKey__init__.py -> buildlib.win32-2.7CryptoPubli
cKey
    creating buildlib.win32-2.7CryptoSignature
    copying libCryptoSignaturePKCS1_PSS.py -> buildlib.win32-2.7CryptoSign
ature
    copying libCryptoSignaturePKCS1_v1_5.py -> buildlib.win32-2.7CryptoSig
nature
    copying libCryptoSignature__init__.py -> buildlib.win32-2.7CryptoSigna
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:python27python.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('rn', 'n');
f.close();exec(compile(code, __file__, 'exec'))" install --record 
c:usersbehee
r~1appdatalocaltemppip-record-jct20jinstall-record.txt --single- 
version-ext
ernally-managed --compile" failed with error code 1 in 
c:usersbeheer~1appdata
localtemppip-install-_luvoppycrypto

I already tried this command:

    pip install --upgrade setuptools

And this still didnt work.

Asked By: S. Backlayn

||

Answers:

The solution was simple

just

    pip uninstall pycrypto
    pip install pycryptodome

And every should just work fine, it worked for me!

Answered By: S. Backlayn

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

For python3 run

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

Answered By: Njeru Cyrus

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. after that you can clone your project in that environment. it will work.

Answered By: coool_athu

I fixed same problem in linux running sudo apt-get install pythonX.X-dev before installing pycrypto. Replace pythonX.X with your python version e.g. sudo apt-get install python3.6-dev

Answered By: Pablo

installing python3-devel (for python3) helped to solve my problem
details in
fatal error: Python.h: No such file or directory

Answered By: Marius R

There is no support whatsoever from the project. Specifically in windows. Pycrypto Issue Link.

For ubuntu these answers will work.
But I guess for windows you should switch to pycryptodome as it installs the packages with the same crypto name as pycrypto,

Answered By: Harshit Agrawal

After so many try with errors, now i have one solution for pycrypto and 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

pycryptodome==3.14.1

splunk-sdk==1.6.19

splunklib==1.0.0

….

below error was showing for me when try to run above docker file code

            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

            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"]

enter image description here

Answered By: Vijay

you can install pip install pycryptodomex as it is the only version that is now independent from the old PyCrypto library.
Note: all modules are installed under the Cryptodome package e.g

from Cryptodome.Cipher import AES

you can read more from official docs here https://www.pycryptodome.org/src/introduction

Answered By: Walulya francis
Categories: questions Tags: , , ,
Answers are sorted by their score. The answer accepted by the question owner as the best is marked with
at the top-right corner.