How to install cryptography on ubuntu?

PythonUbuntuCryptographyPip

Python Problem Overview


My ubuntu is 14.04 LTS.

When I install cryptography, the error is:

Installing egg-scripts.
uses namespace packages but the distribution does not require setuptools.
Getting distribution for 'cryptography==0.2.1'.

no previously-included directories found matching 'documentation/_build'
zip_safe flag not set; analyzing archive contents...
six: module references __path__

Installed /tmp/easy_install-oUz7ei/cryptography-0.2.1/.eggs/six-1.10.0-py2.7.egg
Searching for cffi>=0.8
Reading https://pypi.python.org/simple/cffi/
Best match: cffi 1.5.0
Downloading https://pypi.python.org/packages/source/c/cffi/cffi-1.5.0.tar.gz#md5=dec8441e67880494ee881305059af656
Processing cffi-1.5.0.tar.gz
Writing /tmp/easy_install-oUz7ei/cryptography-0.2.1/temp/easy_install-Yf2Yl3/cffi-1.5.0/setup.cfg
Running cffi-1.5.0/setup.py -q bdist_egg --dist-dir /tmp/easy_install-oUz7ei/cryptography-0.2.1/temp/easy_install-Yf2Yl3/cffi-1.5.0/egg-dist-tmp-A2kjMD
c/_cffi_backend.c:15:17: fatal error: ffi.h: No such file or directory
 #include <ffi.h>
                 ^
compilation terminated.
error: Setup script exited with error: command 'x86_64-linux-gnu-gcc' failed with exit status 1
An error occurred when trying to install cryptography 0.2.1. Look above this message for any errors that were output by easy_install.
While:
  Installing egg-scripts.
  Getting distribution for 'cryptography==0.2.1'.
Error: Couldn't install: cryptography 0.2.1

I don't know why it was failed. What is the reason. Is there something necessary when install it on ubuntu system?

Python Solutions


Solution 1 - Python

The answer is on the docs of cryptography's installation section which pretty much reflects Angelos' answer:

Quoting it:

> For Debian and Ubuntu, the following command will ensure that the > required dependencies are installed: > > $ sudo apt-get install build-essential libssl-dev libffi-dev python-dev > > For Fedora and RHEL-derivatives, the following command will ensure > that the required dependencies are installed: > > $ sudo yum install gcc libffi-devel python-devel openssl-devel > > You should now be able to build and install cryptography with the > usual > > $ pip install cryptography

If you're using Python 3, please use python3-dev instead of python-dev in the first command. (thanks to @chasmani)

If you're installing this on Ubuntu 18.04, please use libssl1.0 instead of libssl-dev in the first command. (thanks to @pobe)

Solution 2 - Python

I had the same problem when pip installing the cryptography module on Ubuntu 14.04. I solved it by installing libffi-dev:

apt-get install -y libffi-dev

Then I got the following error:

build/temp.linux-x86_64-3.4/_openssl.c:431:25: fatal error: openssl/aes.h: No such file or directory
 #include <openssl/aes.h>
                         ^
compilation terminated.
error: command 'x86_64-linux-gnu-gcc' failed with exit status 1

Which I resolved by installing libssl-dev:

apt-get install -y libssl-dev

Solution 3 - Python

Installing libssl-dev and python-dev was enough for me on ubuntu 16.04.

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
QuestionithelloworldView Question on Stackoverflow
Solution 1 - PythonkmonsoorView Answer on Stackoverflow
Solution 2 - PythonAngelosView Answer on Stackoverflow
Solution 3 - PythonRenato PradoView Answer on Stackoverflow