web-dev-qa-db-fra.com

Impossible d'installer le package Python Cryptography avec PIP et setup.py

Lorsque j'essaie d'installer le package Cryptography pour Python via pip install cryptography ou en téléchargeant le package à partir de leur site et en exécutant python setup.py, le message d'erreur suivant s'affiche:


D:\Anaconda\Scripts\pip-script.py run on 02/27/14 16:13:17
Downloading/unpacking cryptography
  Getting page https://pypi.python.org/simple/cryptography/
  URLs to search for versions for cryptography:
  * https://pypi.python.org/simple/cryptography/
  Analyzing links from page https://pypi.python.org/simple/cryptography/
    Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2-cp26-none-win32.whl#md5=13e5c4b19520e7dc6f07c6502b3f74e2 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp26/c/cryptography/cryptography-0.2.1-cp26-none-win32.whl#md5=00e733648ee5cdb9e58876238b1328f8 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp27/c/cryptography/cryptography-0.2-cp27-none-win32.whl#md5=013ccafa6a5a3ea92c73f2c1c4879406 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp27/c/cryptography/cryptography-0.2.1-cp27-none-win32.whl#md5=127d6a5dc687250721f892d55720a06c (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp32/c/cryptography/cryptography-0.2-cp32-none-win32.whl#md5=051424a36e91039807b72f112333ded3 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp32/c/cryptography/cryptography-0.2.1-cp32-none-win32.whl#md5=53f6f57db8e952d64283baaa14cbde3d (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp33/c/cryptography/cryptography-0.2-cp33-none-win32.whl#md5=302812c1c1a035cf9ba3292f8dbf3f9e (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Skipping https://pypi.python.org/packages/cp33/c/cryptography/cryptography-0.2.1-cp33-none-win32.whl#md5=81acca90caf8a45f2ca73f3f9859fae4 (from https://pypi.python.org/simple/cryptography/) because it is not compatible with this Python
    Found link https://pypi.python.org/packages/source/c/cryptography/cryptography-0.1.tar.gz#md5=bdc1c5fe069deca7467b71a0cc538f17 (from https://pypi.python.org/simple/cryptography/), version: 0.1
    Found link https://pypi.python.org/packages/source/c/cryptography/cryptography-0.2.1.tar.gz#md5=872fc04268dadc66a0305ae5ab1c123b (from https://pypi.python.org/simple/cryptography/), version: 0.2.1
    Found link https://pypi.python.org/packages/source/c/cryptography/cryptography-0.2.tar.gz#md5=8a3d21e837a21e1b7634ee1f22b06bb6 (from https://pypi.python.org/simple/cryptography/), version: 0.2
  Using version 0.2.1 (newest of versions: 0.2.1, 0.2, 0.1)
  Downloading from URL https://pypi.python.org/packages/source/c/cryptography/cryptography-0.2.1.tar.gz#md5=872fc04268dadc66a0305ae5ab1c123b (from https://pypi.python.org/simple/cryptography/)
  Running setup.py (path:c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography\setup.py) Egg_info for package cryptography
    In file included from c/_cffi_backend.c:7:0:
    c/misc_win32.h:225:23: error: two or more data types in declaration specifiers
    c/misc_win32.h:225:1: warning: useless type name in empty declaration [enabled by default]
    c/_cffi_backend.c: In function 'convert_array_from_object':
    c/_cffi_backend.c:1105:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1105:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1130:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1130:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1150:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1150:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'convert_struct_from_object':
    c/_cffi_backend.c:1183:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1183:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1196:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1196:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdata_repr':
    c/_cffi_backend.c:1583:13: warning: unknown conversion type character 'L' in format [-Wformat]
    c/_cffi_backend.c:1583:13: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1595:9: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1595:9: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdataowning_repr':
    c/_cffi_backend.c:1647:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1647:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function '_cdata_get_indexed_ptr':
    c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1820:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function '_cdata_getslicearg':
    c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1872:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdata_ass_slice':
    c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1951:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1969:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:1983:22: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:1983:22: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cdata_call':
    c/_cffi_backend.c:2367:30: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:2367:30: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]
    c/_cffi_backend.c:2367:30: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'cast_to_integer_or_char':
    c/_cffi_backend.c:2916:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:2916:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]
    c/_cffi_backend.c:2916:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c:2928:26: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:2928:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]
    c/_cffi_backend.c:2928:26: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'new_array_type':
    c/_cffi_backend.c:3480:9: warning: unknown conversion type character 'l' in format [-Wformat]
    c/_cffi_backend.c:3480:9: warning: too many arguments for format [-Wformat-extra-args]
    c/_cffi_backend.c: In function 'b_complete_struct_or_union':
    c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]
    c/_cffi_backend.c:3878:22: warning: too many arguments for format [-Wformat-extra-args]
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography\setup.py", line 113, in <module>
        "build": cffi_build,
      File "D:\Anaconda\lib\distutils\core.py", line 112, in setup
        _setup_distribution = dist = klass(attrs)
      File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 239, in __init__
      File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 264, in fetch_build_eggs
      File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 580, in resolve
        dist = best[req.key] = env.best_match(req, ws, installer)
      File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 818, in best_match
        return self.obtain(req, installer) # try and download/install
      File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 830, in obtain
        return installer(requirement)
      File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 314, in fetch_build_Egg
      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 593, in easy_install

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 623, in install_item

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 809, in install_eggs

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1015, in build_and_install

      File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1003, in run_setup

    distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1
    Complete output from command python setup.py Egg_info:
    In file included from c/_cffi_backend.c:7:0:

c/misc_win32.h:225:23: error: two or more data types in declaration specifiers

c/misc_win32.h:225:1: warning: useless type name in empty declaration [enabled by default]

c/_cffi_backend.c: In function 'convert_array_from_object':

c/_cffi_backend.c:1105:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1105:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1130:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1130:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1150:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1150:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'convert_struct_from_object':

c/_cffi_backend.c:1183:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1183:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1196:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1196:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdata_repr':

c/_cffi_backend.c:1583:13: warning: unknown conversion type character 'L' in format [-Wformat]

c/_cffi_backend.c:1583:13: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1595:9: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1595:9: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdataowning_repr':

c/_cffi_backend.c:1647:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1647:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function '_cdata_get_indexed_ptr':

c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1820:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1820:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function '_cdata_getslicearg':

c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1872:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1872:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdata_ass_slice':

c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1951:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1951:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1969:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1969:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:1983:22: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:1983:22: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cdata_call':

c/_cffi_backend.c:2367:30: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:2367:30: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]

c/_cffi_backend.c:2367:30: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'cast_to_integer_or_char':

c/_cffi_backend.c:2916:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:2916:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]

c/_cffi_backend.c:2916:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c:2928:26: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:2928:26: warning: format '%s' expects argument of type 'char *', but argument 3 has type 'Py_ssize_t' [-Wformat]

c/_cffi_backend.c:2928:26: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'new_array_type':

c/_cffi_backend.c:3480:9: warning: unknown conversion type character 'l' in format [-Wformat]

c/_cffi_backend.c:3480:9: warning: too many arguments for format [-Wformat-extra-args]

c/_cffi_backend.c: In function 'b_complete_struct_or_union':

c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:3878:22: warning: unknown conversion type character 'z' in format [-Wformat]

c/_cffi_backend.c:3878:22: warning: too many arguments for format [-Wformat-extra-args]

Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography\setup.py", line 113, in <module>

    "build": cffi_build,

  File "D:\Anaconda\lib\distutils\core.py", line 112, in setup

    _setup_distribution = dist = klass(attrs)

  File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 239, in __init__

  File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 264, in fetch_build_eggs

  File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 580, in resolve

    dist = best[req.key] = env.best_match(req, ws, installer)

  File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 818, in best_match

    return self.obtain(req, installer) # try and download/install

  File "build\bdist.win-AMD64\Egg\pkg_resources.py", line 830, in obtain

    return installer(requirement)

  File "build\bdist.win-AMD64\Egg\setuptools\dist.py", line 314, in fetch_build_Egg

  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 593, in easy_install



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 623, in install_item



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 809, in install_eggs



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1015, in build_and_install



  File "build\bdist.win-AMD64\Egg\setuptools\command\easy_install.py", line 1003, in run_setup



distutils.errors.DistutilsError: Setup script exited with error: command 'gcc' failed with exit status 1

----------------------------------------
Cleaning up...
  Removing temporary dir c:\users\paco\appdata\local\temp\pip_build_Paco...
Command python setup.py Egg_info failed with error code 1 in c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography
Exception information:
Traceback (most recent call last):
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\basecommand.py", line 122, in main
    status = self.run(options, args)
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\commands\install.py", line 278, in run
    requirement_set.prepare_files(Finder, force_root_Egg_info=self.bundle, bundle=self.bundle)
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\req.py", line 1229, in prepare_files
    req_to_install.run_Egg_info()
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\req.py", line 325, in run_Egg_info
    command_desc='python setup.py Egg_info')
  File "D:\Anaconda\lib\site-packages\pip-1.5.4-py2.7.Egg\pip\util.py", line 697, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command python setup.py Egg_info failed with error code 1 in c:\users\paco\appdata\local\temp\pip_build_Paco\cryptography

J'ai trouvé d'autres messages d'erreur Egg_info ( ici et ici ), mais les solutions proposées ne résoudraient pas mon problème. De plus, je peux installer d'autres paquets via PIP.

PIP version 1.5.4 setuptools version 2.2

235
laven

J'ai eu un problème similaire et j'ai constaté qu'il me manquait simplement une dépendance (libssl-dev, pour moi). Comme indiqué dans https://cryptography.io/en/latest/installation/ , assurez-vous que toutes les dépendances sont remplies:

Sur Windows

Si vous utilisez Windows, vous devez vous assurer d’avoir installé OpenSSL. Il existe des fichiers binaires pré-compilés. Si votre installation se trouve dans un emplacement inhabituel, définissez les variables d’environnement LIB et INCLUDE pour inclure les emplacements correspondants. Par exemple:

C:\> \path\to\vcvarsall.bat x86_AMD64
C:\> set LIB=C:\OpenSSL-1.0.1f-64bit\lib;%LIB%
C:\> set INCLUDE=C:\OpenSSL-1.0.1f-64bit\include;%INCLUDE%
C:\> pip install cryptography

Construire la cryptographie sur Linux

la cryptographie devrait être très facile à compiler sous Linux à condition que vous ayez un compilateur C, des en-têtes pour Python (si vous utilisez n’utilisez pas pypy) et des en-têtes pour les bibliothèques OpenSSL et libffi disponibles sur votre système.

Pour Debian et Ubuntu, la commande suivante vérifiera que les dépendances requises sont installées:

Sudo apt-get install build-essential libssl-dev libffi-dev python-dev

Pour Fedora et les dérivés RHEL, la commande suivante garantira que les dépendances requises sont installées:

Sudo yum install gcc libffi-devel python-devel openssl-devel

Vous devriez maintenant être capable de construire et d’installer la cryptographie avec l’habitude.

pip install cryptography
400
jsonm

Ceci est une version condensée des informations figurant sur la page de installation docs de cryptographie. Consultez cette page pour obtenir les détails les plus récents.

Étant donné que cette SO question ne cesse de se poser, je laisserai tomber une réponse ici aussi (je suis l'un des développeurs de pyca/cryptographie). Voici ce dont vous avez besoin pour installer de manière fiable pyca/cryptographie sur les 3 principales plates-formes.

Veuillez noter que dans tous ces cas, il est vivement recommandé d'installer dans un virtualenv et non dans l'espace global du package. Ceci n'est pas spécifique à la cryptographie mais plutôt à un conseil générique pour que votre installation Python reste fiable. L'espace de paquet global dans le système d'exploitation fourni Pythons est la propriété du système et installer des éléments via pip dans le système pose des problèmes.

Les fenêtres

Passez au dernier pip (8.1.2 à compter de juin 2016) et juste pip install cryptography

cryptographie et cffi sont tous deux expédiés sous forme de roues liées statiquement.

OS X

Passez au dernier pip (8.1.2 à compter de juin 2016) et juste pip install cryptography

cryptographie et cffi sont tous deux expédiés sous forme de roues liées statiquement. Cela fonctionnera pour pyenv Python, système Python, homebrew Python, etc. Tant que vous êtes sur le dernier pip, vous n'avez même pas besoin d'un compilateur.

Linux

A partir de la version 2.0, la cryptographie est livrée avec les roues manylinux1. Cela signifie que les utilisateurs de pip 8.1 ou supérieur fonctionnant sur une distribution basée sur la glibc (presque tout sauf sur Alpine Linux) et sur x86/x86-64 (désolés gens de Raspberry Pi) n'ont plus besoin d'un compilateur ni d'en-têtes, car vous aurez automatiquement une roue précompilée . Donc, la première chose que vous devriez essayer est de mettre à jour votre pip!

Si vous n'êtes pas compatible manylinux1, voici ce que vous devez faire:

Vous aurez besoin d'un compilateur C, de libffi + ses en-têtes de développement et de openssl + ses en-têtes de développement. 

Distributions dérivées Debian ou Ubuntu

apt-get install build-essential libssl-dev libffi-dev python-dev suivi de 

pip install cryptography

Distributions dérivées de Red Hat

yum install gcc openssl-devel libffi-devel python-devel suivi de

pip install cryptography

95
Paul Kehrer

Pour ceux qui utilisent OS X, voici ce qui a fonctionné pour moi:

brew install openssl
env ARCHFLAGS="-Arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include"
pip install cryptography

(Courir 10.9 Mavericks)

Vous pouvez également essayer de fusionner les drapeaux et les commandes pip avec le commentaire ci-dessous:

brew install openssl
env ARCHFLAGS="-Arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
40
Nick Woodhams

Cela a résolu le problème pour moi (Ubuntu 16.04):

Sudo apt-get install build-essential libssl-dev libffi-dev python-dev python3-dev

et puis ça fonctionnait comme ça:

pip install cryptography
pip install pyopenssl ndg-httpsclient pyasn1
22
alneven

Cela a fonctionné pour moi à El Capitan

brew install pkg-config libffi openssl
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography

Vous pouvez également consulter le fil ici: https://github.com/pyca/cryptography/issues/2350

22

Comment j'ai résolu "Échec de nettoyage du répertoire de compilation pour la cryptographie"
(Je suis venu ici de Google pour obtenir cette erreur.)

note: utiliser un virtualenv 

TL; DR:

mon fichier /etc/apt/sources.list n'a pas été correctement configuré pour ma Debian 8.

Explications:

Je voulais installer paramiko ..__ paramiko a besoin de cryptographie.

J'ai eu ces erreurs: D'abord avec pip install cryptography:

(...)
  ----------------------------------------
  Failed cleaning build dir for cryptography
Failed to build cryptography
(...)
    ----------------------------------------
Command "/home/myuser/pyenvs/testo/bin/python -u -c "import setuptools, tokenize;__file__='/tmp/pip-build-HXWKAO/cryptography/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-WjqY6V-record/install-record.txt --single-version-externally-managed --compile --install-headers /home/myuser/pyenvs/testo/include/site/python2.7/cryptography" failed with error code 1 in /tmp/pip-build-HXWKAO/cryptography/

puis avec Sudo apt-get install build-essential:

Reading package lists... Done
Building dependency tree
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 build-essential : Depends: libc6-dev but it is not going to be installed > or
                            libc-dev
                   Depends: gcc (>= 4:4.4.3) but it is not going to be installed
                   Depends: g++ (>= 4:4.4.3) but it is not going to be installed
E: Unable to correct problems, you have held broken packages.

(Pas exactement les mêmes erreurs que OP mais je suis ici pour aider éventuellement)

Résolution:

Après avoir testé presque toutes les commandes de tous les posts, je finis par y aller
https://wiki.debian.org/SourcesList
et copie collée ma configuration adéquate dans le fichier /etc/apt/sources.list

puis:

Sudo aptitude update

et alors

Sudo apt-get install build-essential libssl-dev libffi-dev python-dev

et alors

pip install cryptography

hth

14
Boop

Apparemment, dans les versions récentes d’OSX, cela pourrait être causé par la livraison par Apple de leur propre version de OpenSSL, qui ne fonctionne pas avec la bibliothèque de cryptographie. 

Les versions récentes de la bibliothèque de cryptographie sont livrées avec leurs propres dépendances natives, mais pour les obtenir, vous devez mettre à niveau pip et éventuellement aussi env virtuel. Donc pour moi, la solution était:

pip install --upgrade --force-reinstall pip virtualenv
14
Cam Jackson

Cela a fonctionné pour moi (j'utilise Ubuntu 14.04):

installez d'abord libffi-dev libssl-dev libpython2.7-dev:

Sudo apt-get install libffi-dev libssl-dev libpython2.7-dev

puis dans virtualenv:

pip install cryptography
pip install pyopenssl ndg-httpsclient pyasn1

Sources: 

https://stackoverflow.com/a/32800685/5123544

https://stackoverflow.com/a/29202163/5123544

9
akashbw

La réponse de Nick Woodham ne fonctionnait pas sous OSX 10.11 El Capitan pour moi, mais cela fonctionnait.

brew install openssl
CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography==0.8
7
ouroboros

J'avais des problèmes avec l'installation de cryptography==1.7.1 sur Ubuntu 16.04 et aucune des réponses ci-dessus ne m'a aidé. Donc, j'ai mis à jour l'exigence pour un compatible 1.8.2 et la configuration a réussi. Notez que vous aurez toujours besoin de compiler les bases et autres dépendances mentionnées dans la réponse top (la plus votée) .

5
shad0w_wa1k3r

J'ai essayé plusieurs solutions ci-dessus, mais ce n'est qu'après l'installation de la bibliothèque suivante que j'ai pu installer cryptography:

Sudo apt install libssl1.0

J'utilise Ubuntu 18.04

4
Daniil Mashkin

Si vous utilisez python3, vous devez installer python3-dev. Cela a résolu mon problème Sudo apt-get install python3-dev.

4
Pobe

J'avais un problème avec Sudo pip install cryptography car il ne trouvait pas ffi lors de la compilation. (OSX - Yosemite)

Je l'ai résolu en téléchargeant libffi et en configurant la variable env.

$ brew install pkg-config libffi
$ export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.13/lib/pkgconfig/
$ pip install cryptography
3
ThinkBonobo

Cela fonctionne sur El Capitan avec MacPorts:

$ Sudo port install openssl
$ env LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography
3
Torsten Homberger

J'ai remarqué que l'affiche originale utilisait clairement une installation Windows ... et les meilleures réponses ci-dessus concernent toutes les autres systèmes d'exploitation ... Cela suppose que vous avez installé Python 2.7, la version la plus largement prise en charge (bien que l'ancienne).

  1. Installez le " Compilateur Visual C++ pour Python "
  2. Ouvrir une fenêtre d'invite de commande administrative
  3. Relancez pip install (package), par exemple. 

    cd C:\Python27\Scripts
    pip install cryptography  (or pycrypto, fabric, etc)
    

En fait, j'ai rencontré le même problème en essayant d'installer Scrapy, qui dépend de l'installation préalable de la cryptographie. Je suis sur Win764-bit avec Python 2.7 64-bit installé. La réponse de @ jsonm a finalement fonctionné pour moi, mais je devais d'abord copier C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvarsx86_AMD64.bat dans le sous-répertoire x86_AMD64 de ce répertoire bin afin que le vcvarsall.bat cesse de générer une erreur indiquant qu'il manquait la configuration. Si vous avez besoin de configurer env vars pour une configuration différente, veillez à copier le fichier vcvars bat correspondant dans le sous-répertoire correspondant, sinon la première commande ci-dessous risque de ne pas fonctionner.

Ensuite, j'ai lancé ce qui suit à partir d'une ligne de commande, conformément aux instructions de @ jsonm (modifié pour ma config) ... 

C:\> "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" x86_AMD64 
C:\> set LIB=C:\OpenSSL-Win64\lib;%LIB% 
C:\> set INCLUDE=C:\OpenSSL-Win64\include;%INCLUDE% 
C:\> pip install cryptography

Et ça a fonctionné.

1
minorgod

J'ai rencontré un problème similaire récemment. Dans mon cas, les versions de cffi et cryptography écrites dans requirements.txt n'étaient pas compatibles (cffi == 1.8.9 et cryptographie == 1.9). J'ai résolu la mise à jour cffi avec la dernière version disponible.

1
Griffosx

j'ai téléchargé le code source complet de paramiko à partir de pypi et je l'ai fait

installation de python.py

cela a fonctionné parfaitement

tous les paquets pythondev/openssl/libffi par défaut sont déjà présents dans rhel.

le téléchargement de RPM a une discordance RPM et plus de problèmes

1
RICHA AGGARWAL

J'ai eu cette erreur aussi. Après avoir continué à avoir cette erreur même après avoir installé openSSL, j’ai finalement essayé d’installer des fichiers wheel à partir de https://pypi.python.org/pypi/cryptography/0.2.2#downloads . Ça a marché!

1
user3357177

Ces deux commandes l'ont corrigé pour moi:

brew install openssl
brew link openssl --force

Source: https://github.com/phusion/passenger/issues/1630#issuecomment-147527656

0
Tobias Lorenz

J'ai résolu ce problème en passant de la cryptographie 1.9 à la version 2.4.2.

0
Alexander Townsend

J'ai le même problème:

pip install cryptography

.
.
.
Installing collected packages: cffi, cryptography
     Running setup.py install for cffi ... error

Ensuite, j'installe libffi-devel et le problème est résolu

yum install libffi-devel
0
Pradip Das