Installing PyCrypto on Ubuntu - fatal error on build

PythonPycrypto

Python Problem Overview


Having looked at other similar threads, I still can't get pycrypto running.

I'm trying to get it working on my Ubuntu laptop - but I couldn't manage it on my Windows PC either.

I downloaded pycrypto-2.6, extracted it, and ran

    python setup.py build

but then this happened

warning: GMP or MPIR library not found; Not building Crypto.PublicKey._fastmath.
building 'Crypto.Hash._MD2' extension
gcc -pthread -fno-strict-aliasing -fwrapv -Wall -Wstrict-prototypes -fPIC -std=c99 -O3 - fomit-frame-pointer -Isrc/ -I/usr/include/python2.7 -c src/MD2.c -o build/temp.linux-i686-?2.7/src/MD2.o
src/MD2.c:31:20: fatal error: Python.h: No such file or directory
compilation terminated.
error: command 'gcc' failed with exit status 1

Would appreciate any help.

Python Solutions


Solution 1 - Python

You need to install the Python development files. I believe this will do it:

sudo apt-get install python-dev

Solution 2 - Python

On Ubuntu, I needed some other packages for it to succeed:

apt-get install autoconf g++ python2.7-dev
pip install pycrypto

Solution 3 - Python

On Ubuntu and if you use Python 3.x you will need:

sudo apt-get install gcc python3-dev

you probably already have gcc but just in case if you are trying this command from Dockerfile with base image python:3.6.4-slim-jessie then you will also need gcc.

Solution 4 - Python

August 2021

For python 3.8 users run

sudo apt-get install python3.8-dev

and try to install pycrypto again

pip install pycrypto

Attributions

All content for this solution is sourced from the original question on Stackoverflow.

The content on this page is licensed under the Attribution-ShareAlike 4.0 International (CC BY-SA 4.0) license.

Content TypeOriginal AuthorOriginal Content on Stackoverflow
QuestionOJFordView Question on Stackoverflow
Solution 1 - PythonNed BatchelderView Answer on Stackoverflow
Solution 2 - PythonHomer6View Answer on Stackoverflow
Solution 3 - PythonLuka LopusinaView Answer on Stackoverflow
Solution 4 - Pythonbabatunde adewoleView Answer on Stackoverflow