Installation des Python Cryptography-Pakets mit PIP und setup.py fehlgeschlagen

256

Wenn ich versuche, das Cryptography- Paket für Python entweder pip install cryptographydurch Herunterladen oder Herunterladen des Pakets von der Website zu installieren und auszuführen python setup.py, wird folgende Fehlermeldung angezeigt:


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

Ich habe andere eg_info-Fehlerbeiträge gefunden ( hier und hier ), aber die dort angebotenen Lösungen würden mein Problem nicht lösen. Ich kann auch andere Pakete über PIP installieren.

PIP Version 1.5.4 Setuptools Version 2.2

Laven
quelle
PUNKT FÜR ALLE - Kryptografie wird jetzt für die meisten Betriebssysteme mit vorgefertigten Rädern geliefert, sodass eine Kryptografie sofort funktionieren pip installsollte.
Legorooj

Antworten:

427

Ich hatte ein ähnliches Problem und stellte fest, dass mir einfach eine Abhängigkeit fehlte (libssl-dev für mich). Stellen Sie gemäß https://cryptography.io/en/latest/installation/ sicher, dass alle Abhängigkeiten erfüllt sind:

Unter Windows

Wenn Sie unter Windows arbeiten, müssen Sie sicherstellen, dass OpenSSL installiert ist. Es sind vorkompilierte Binärdateien verfügbar. Wenn sich Ihre Installation an einem ungewöhnlichen Ort befindet, legen Sie die Umgebungsvariablen LIB und INCLUDE so fest, dass sie die entsprechenden Orte enthalten. Beispielsweise:

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

Erstellen von Kryptografie unter Linux

Kryptografie sollte unter Linux sehr einfach zu erstellen sein, vorausgesetzt, Sie haben einen C-Compiler, Header für Python (wenn Sie nicht pypy verwenden) und Header für die OpenSSL- und libffi-Bibliotheken, die auf Ihrem System verfügbar sind.

Für Debian und Ubuntu stellt der folgende Befehl sicher, dass die erforderlichen Abhängigkeiten installiert sind:

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

Für Fedora- und RHEL-Derivate stellt der folgende Befehl sicher, dass die erforderlichen Abhängigkeiten installiert sind:

sudo yum install gcc libffi-devel python-devel OpenSSL-devel

Sie sollten nun in der Lage sein, Kryptografie mit den üblichen Funktionen zu erstellen und zu installieren.

pip install cryptography
jsonm
quelle
1
Danke, hat perfekt funktioniert! Mit VS2010 musste ich: SET VS90COMNTOOLS =% VS100COMNTOOLS% und das Suffix "mt" zu den lib-Namen hinzufügen
Maciek
//, ich kann bestätigen, dass dies auf einem CEntOS 6.3-Computer mit Python 3.3 mit einem ähnlichen Fehler wie in der ursprünglichen Frage funktioniert hat.
Nathan Basanese
4
Scheint, dass libffi-devPaket überhaupt der Schlüssel ist. Ich musste nichts mehr konfigurieren, aber dieser Paketname wurde nicht im Fehlerprotokoll angezeigt: - / Vielen Dank.
m3nda
6
Vergessen Sie nicht , ersetzen python-devmit , python3-devwenn Sie mit python3
duan
1
FWIW Ich verwende Debian 9 und musste eine apt-get install libssl1.0-dev ausführen, bevor ich aufhörte, Fehler während der Kryptografie der Pip-Installation zu bekommen
Mike Pennington
113

Dies ist eine komprimierte Version der Informationen auf der Seite mit den Installationsdokumenten der Kryptografie . Auf dieser Seite finden Sie die neuesten Informationen.

Da diese SO-Frage immer wieder auftaucht, werde ich auch hier eine Antwort hinterlassen (ich bin einer der Pyca / Kryptographie-Entwickler). Folgendes benötigen Sie, um Pyca / Kryptografie zuverlässig auf den drei Hauptplattformen zu installieren.

Bitte beachten Sie, dass in all diesen Fällen die Installation in einer virtuellen Umgebung und nicht im globalen Paketbereich dringend empfohlen wird. Dies ist nicht kryptografiespezifisch, sondern ein allgemeiner Ratschlag, um Ihre Python-Installation zuverlässig zu halten. Der globale Paketspeicherplatz im Betriebssystem, sofern Pythons im Besitz des Systems ist und die Installation von Dingen über Pip darin Probleme bereitet.

Windows

Upgrade auf die neueste Pip (8.1.2 ab Juni 2016) und nur pip install cryptography

Kryptographie und CFFI werden beide als statisch verknüpfte Räder geliefert.

OS X.

Upgrade auf die neueste Pip (8.1.2 ab Juni 2016) und nur pip install cryptography

Kryptographie und CFFI werden beide als statisch verknüpfte Räder geliefert. Dies funktioniert für Pyenv Python, System Python, Homebrew Python usw. Solange Sie auf dem neuesten Pip sind, benötigen Sie nicht einmal einen Compiler.

Linux

Ab Version 2.0 werden in der Kryptografie viele linux1-Räder ausgeliefert. Dies bedeutet, dass Benutzer mit pip 8.1+, die auf einer glibc-basierten Distribution (fast alles außer Alpine Linux) und auf x86 / x86-64 (sorry Raspberry Pi-Leute) ausgeführt werden, keinen Compiler oder Header mehr benötigen, da Sie automatisch ein vorkompiliertes Rad erhalten . Als erstes sollten Sie versuchen, Ihren Pip zu aktualisieren!

Wenn Sie nicht mit manylinux1 kompatibel sind, müssen Sie Folgendes tun:

Sie benötigen einen C-Compiler, libffi + seine Entwicklungsheader und openssl + seine Entwicklungsheader.

Von Debian oder Ubuntu abgeleitete Distributionen

apt-get install build-essential libssl-dev libffi-dev python-dev gefolgt von

pip install cryptography

Von Red Hat abgeleitete Distributionen

yum install gcc openssl-devel libffi-devel python-devel gefolgt von

pip install cryptography

Paul Kehrer
quelle
1
Ich habe dies getan, aber ich erhalte immer noch den Fehler: "Fehler beim Erstellen des Rads für die Kryptografie" Gefolgt von einer Menge Ausgabe (zu viel für einen Kommentar).
RolandiXor
4
Die MacOSX-Antwort funktionierte unter MacOS Sierra 10.12 wie ein Zauber. Ich habe meinen Pip auf die aktuellste Version 9.0.1 aktualisiert.
João Santos
3
Aktualisieren Sie auf den neuesten Pip (8.1.2 ab Juni 2016) und installieren Sie die Kryptografie einfach!
Timothy Dalton
Ich musste meine pipalte Version manuell aktualisieren , dann funktioniert die OSX-Lösung wie ein Zauber. ( pip 9.0.1, MacOS Sierra)
Benjamin
1
funktioniert nicht unter Windows 10, der Erstellungsfehler kann die Include-Datei nicht öffnen: 'openssl / opensslv.h'
Totte Karlsson
43

Für diejenigen unter Ihnen, die OS X ausführen, hat Folgendes funktioniert:

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

(Laufen 10.9 Mavericks)

Möglicherweise möchten Sie auch versuchen, die Flags und Pip-Befehle gemäß dem folgenden Kommentar wie folgt zusammenzuführen:

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
Nick Woodhams
quelle
1
CFLAGS="-I/usr/include" pip install cryptography von reaperhulk arbeitete für mich an Mavericks.
jjr4826
Dieser Befehl in der Antwort ist nicht korrekt: Die zweite und dritte Zeile müssen zusammengeführt werden (Backslash verwenden). Dann funktioniert es perfekt, nur auf El Capitan getestet. Dieser Kommentar oben ist auch nicht korrekt. Die anderen Einstellungen in der Antwort sind erforderlich, sonst erhalten Sie spätere Beschwerden.
Christian Tismer
1
Wie immer @nathancahill HEHE
Nick Woodhams
1
Ich musste exportnicht verwenden env, aber sonst funktioniert.
Richard
$ ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptographyarbeitete für mich macOS 10.12mit Python3.7(in einer virtuellen Umgebung) bei Bedarf cryptographyzur Installation ansible.
Jalanb
23

Das hat bei mir in El Capitan funktioniert

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

Sie können den Thread auch hier überprüfen: https://github.com/pyca/cryptography/issues/2350

Dean Christian Armada
quelle
Dies ist der erste auf dieser Seite (und viele, viele andere ..), der in Mojave 10.14.5 für mich funktioniert hat, danke. Außerdem sind die Umgebungsvariablen nur für den Befehl aktiv und nicht wie anderswo für die Sitzung.
Chris
23

Dies löste das Problem für mich (Ubuntu 16.04):

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

und dann funktionierte es so:

pip install cryptography
pip install pyopenssl ndg-httpsclient pyasn1
alneven
quelle
14

Anscheinend kann dies bei neueren OSX-Versionen darauf zurückzuführen sein, dass Apple eine eigene Version von OpenSSL ausgeliefert hat, die mit der Kryptografie-Bibliothek nicht funktioniert.

Neuere Versionen der Kryptografie-Bibliothek werden mit ihren eigenen nativen Abhängigkeiten ausgeliefert. Um diese zu erhalten, müssen Sie jedoch pip und möglicherweise auch die virtuelle Umgebung aktualisieren. Für mich war die Lösung also:

pip install --upgrade --force-reinstall pip virtualenv
Cam Jackson
quelle
Die Neuinstallation von virtualenv hat es für mich getan. Es wurde eine alte Version von pip verwendet, die immer wieder fehlschlug. Danke!
Adri Van Houdt
Scheitert immer noch für mich. OSX 10.11.3 El Capitan hier.
Agondiken
14

Wie ich "
Fehler beim Reinigen des Build-Verzeichnisses für die Kryptografie" gelöst habe (Ich bin von Google hierher gekommen, um diesen Fehler zu beheben.)

Hinweis : Verwenden einer virtuellen Umgebung

TL; DR:

Meine Datei /etc/apt/sources.listwar für mein Debian 8 nicht richtig konfiguriert.

Erklärungen:

Ich wollte paramiko installieren. Paramiko braucht Kryptographie.

Ich habe folgende Fehler erhalten: zuerst mit 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/

und dann mit 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.

(Nicht genau die gleichen Fehler wie OP, aber ich bin hier, um irgendwann zu helfen )

Lösen:

Nachdem ich fast jeden Befehl aus jedem Beitrag getestet habe, gehe ich zu
https://wiki.debian.org/SourcesList
und kopiere meine entsprechende Konfiguration in die Datei/etc/apt/sources.list

dann:

sudo aptitude update

und dann

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

und dann

pip install cryptography

hth

Boop
quelle
Mein Problem auf dem Ubuntu 16.04 Server wurde behoben. Vielen Dank
Altaf Hussain
14

Ich habe oben viele Lösungen ausprobiert, aber erst nach der Installation der folgenden Bibliothek konnte ich installieren cryptography:

sudo apt install libssl1.0

Ich verwende Ubuntu 18.04, aber es funktioniert auch unter Ubuntu 18.10.

Daniil Mashkin
quelle
1
Während dieser Code die Frage möglicherweise beantwortet, würde die Bereitstellung eines zusätzlichen Kontexts darüber, wie und / oder warum das Problem gelöst wird, den langfristigen Wert der Antwort verbessern.
Nic3500
1
Das hat bei mir funktioniert. Warum hat es funktioniert? Was ist der Unterschied zwischen diesem Paket, das libssl1.0-dev und libssl-dev installiert?
Chris
2
Ich verstehe nicht warum, aber nur das hat mir auch geholfen
dyus
Hat auch für mich gearbeitet. Obwohl pip nach der Ankündigung der erfolgreichen Installation immer noch einen Segmentierungsfehler erhält, denke ich, dass dies nur ein Pip-Problem ist.
Rob Mosher
7

Die Antwort von Nick Woodham funktionierte unter OSX 10.11 El Capitan für mich nicht, aber das tat es.

brew install openssl
CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography==0.8
Ouroboros
quelle
Dies kam meiner Arbeit am nächsten, scheiterte aber auch. El Capitan OSX 10.11.3 hier. fehlgeschlagen mit Fehlercode 1 in / private / var / folders / d9 / 75cfznt17cjc124j3stq3qc40000gn / T / pip-build-Q_JjdE / cryptography /
agondiken
Ich musste verwenden CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptographyund es installiert. Ich musste auch hinzufügen LDFLAGS="-L/usr/local/opt/openssl/lib", damit die Bibliothek geladen werden konnte. Dean Christian Armadas Kommentar scheint dasselbe zu tun, verwendet jedoch von Brew generierte Variablen anstelle von Hardcodierung.
Spig
4

Wenn Sie Python3 verwenden, müssen Sie installieren python3-dev. Dies hat mein Problem behoben sudo apt-get install python3-dev.

Pobe
quelle
3

Ich hatte ein Problem beim Ausführen, sudo pip install cryptographyda beim Kompilieren kein ffi gefunden wurde. (OSX - Yosemite)

Ich habe es gelöst, indem ich libffi heruntergeladen und die env var eingerichtet habe.

$ brew install pkg-config libffi
$ export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.13/lib/pkgconfig/
$ pip install cryptography
ThinkBonobo
quelle
Ich hatte Probleme bei der Installation von bcrypt, weil cffi nicht installiert werden konnte, aber dies behebt es sowohl für cffi als auch für bcrypt. Danke dir!
Radiantradon
Bei El Capitan hat das bei mir nicht funktioniert. Beachten Sie auch die Streuphase am Ende von "Pip Install Cryptography".
Shacker
@shacker Ich habe kein El Capitan, kann das also nicht testen, habe aber die Streuphase entfernt, danke.
ThinkBonobo
@shacker Überprüfen Sie meine Antwort bro für die El Capitan Installation
Dean Christian Armada
3

Dies funktioniert auf El Capitan mit MacPorts:

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

Wenn Sie eine Python-Paketverteilung in einer .gitlab-ci.yml- Datei für GitLab CI erstellen, die einen auf einem AWS EC2-Computer bereitgestellten Gitlab-Runner verwendet

 - apk add --update alpine-sdk && \
 - apk add libffi-dev openssl-dev && \
 - apk --no-cache --update add build-base
Crakama
quelle
1
Prost, hat super funktioniert in einem alpinen Docker Container!
Alex Szabó
2

Mir ist aufgefallen, dass das Originalposter eindeutig eine Windows-Installation verwendet ... und die besten Antworten oben sind alle für andere Betriebssysteme ... also los geht's. Dies setzt voraus, dass Sie Python 2.7 installiert haben, die am weitesten unterstützte (wenn auch alte) Version.

  1. Installieren Sie den " Visual C ++ - Compiler für Python "
  2. Öffnen Sie ein administratives Eingabeaufforderungsfenster
  3. Führen Sie die Pip-Installation (Paket) erneut aus, z

    cd C:\Python27\Scripts
    pip install cryptography  (or pycrypto, fabric, etc)
Steven der Leicht Amüsiert
quelle
2

Ich bin kürzlich auf ein ähnliches Problem gestoßen. In meinem Fall waren die Versionen von cffiund cryptographygeschrieben in require.txt nicht kompatibel (cffi == 1.8.9 und cryptography == 1.9). Ich habe das Update cffimit der letzten verfügbaren Version gelöst .

Griffosx
quelle
1

Ich bin tatsächlich auf dasselbe Problem gestoßen, als ich versucht habe, Scrapy zu installieren, was davon abhängt, ob zuerst die Kryptografie installiert wird. Ich bin auf Win764-Bit mit Python 2.7 64-Bit installiert. @ jsonms Antwort funktionierte schließlich für mich, aber zuerst musste ich C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvarsx86_amd64.batin das x86_amd64Unterverzeichnis innerhalb dieses Bin-Verzeichnisses kopieren , damit dasvcvarsall.bat kein Fehler mehr die Konfiguration fehlte. Wenn Sie env vars für ein anderes Setup konfigurieren müssen, müssen Sie in die entsprechende vcvars bat-Datei in das entsprechende Unterverzeichnis kopieren. Andernfalls funktioniert der erste Befehl möglicherweise nicht.

Dann habe ich Folgendes über eine Befehlszeile gemäß den Anweisungen von @ jsonm ausgeführt (für meine Konfiguration optimiert) ...

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

Und es hat funktioniert.

Minorgod
quelle
1

Ich habe den vollständigen Quellcode von paramiko von pypi heruntergeladen und getan

python setup.py installieren

es hat einwandfrei funktioniert

Alle Standardpakete pythondev / openssl / libffi sind bereits in rhel vorhanden.

Das Herunterladen von RPMs hat eine Nichtübereinstimmung der Drehzahl und mehr Probleme

RICHA AGGARWAL
quelle
0

Ich habe das gleiche Problem:

pip install cryptography

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

Dann installiere ich libffi-devel und das Problem ist gelöst

yum install libffi-devel
Pradip Das
quelle
0

Diese beiden Befehle haben es für mich behoben:

brew install openssl
brew link openssl --force

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

Tobias Lorenz
quelle
1
Ich empfehle dringend, dies nicht brew link openssl --forceunter OS X zu tun. Aktualisieren Sie stattdessen einfach Ihren Pip auf die neueste Version, und es wird problemlos ein statisch verknüpftes Rad für CFFI und Kryptografie installiert.
Paul Kehrer
0

Ich habe dieses Problem durch ein Upgrade von Cryptography 1.9 auf 2.4.2 behoben

Alexander Townsend
quelle