Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to install cryptography on ubuntu?

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?

like image 739
ithelloworld Avatar asked Feb 02 '16 03:02

ithelloworld


People also ask

Is cryptography a standard Python library?

cryptography is a package which provides cryptographic recipes and primitives to Python developers. Our goal is for it to be your “cryptographic standard library”. It supports Python 3.6+ and PyPy3 7.2+.

What is cryptography wheel?

These wheels can be installed by a sufficiently-recent version of pip . The Cryptography wheel in this directory contains a statically-linked OpenSSL binding, which ensures that you have access to the most-recent OpenSSL releases without corrupting your system dependencies.


2 Answers

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)

like image 76
kmonsoor Avatar answered Sep 21 '22 02:09

kmonsoor


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 
like image 29
Angelos Avatar answered Sep 17 '22 02:09

Angelos