34

I encountered a problem when I try to download a certain 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.

cellepo
  • 4,001
  • 2
  • 38
  • 57
S. Backlayn
  • 1,343
  • 1
  • 9
  • 11

9 Answers9

95

The solution was simple

just

    pip uninstall pycrypto
    pip install pycryptodome

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

S. Backlayn
  • 1,343
  • 1
  • 9
  • 11
  • 7
    This is a _workaround_ rather than a solution, but it is still useful, because according to [this post](https://github.com/dlitz/pycrypto/issues/238) on the "Issues" section of the `pycrypto` official repository, it seems the package has not been maintained at all in the last years. And their recommendation is to install `pycryptodome` instead, since it still creates a `Crypto` package with the same namespace, so it is expected to work with source code based on the `pycrypto` libraries. – Kubuntuer82 May 02 '18 at 10:19
  • I have the same problem and tried ur solution and faced `WARNING: Skipping pycrypto as it is not installed.` – Farhang Amaji Jul 19 '21 at 18:04
30

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

Njeru Cyrus
  • 1,753
  • 21
  • 22
6

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

Pablo
  • 643
  • 9
  • 12
1

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

Vijay
  • 141
  • 7
1

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

Walulya francis
  • 353
  • 2
  • 10
0

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

  • Probably correct name for **linux** package is `python3-dev`. And author of question use **windows**. – ont.rif Aug 10 '21 at 19:06
0

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,

0

Just make sure to copy Crypto folder to path where you have the script.py and complementary files.

You can check the path in IDLE shell

import Crypto as cr

print ("Pycryptodome version:"+ cr.__version__)
print (cr.__path__)
moken
  • 3,227
  • 8
  • 13
  • 23
-1

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.

coool_athu
  • 359
  • 3
  • 4