Gdy próbuję zainstalować pakiet kryptograficzny dla Pythona za pośrednictwem jednego z nich pip install cryptography
lub pobierając pakiet z ich witryny i uruchamiając python setup.py
, pojawia się następujący błąd:
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
Znalazłem inne posty z błędami egg_info ( tu i tutaj ), ale przedstawione tam rozwiązania nie rozwiązałyby mojego problemu. Ponadto jestem w stanie zainstalować inne pakiety za pośrednictwem PIP.
Wersja PIP 1.5.4 setuptools wersja 2.2
python
cryptography
pip
kruk
źródło
źródło
pip install
kryptografia powinna działać od razu po wyjęciu z pudełka.Odpowiedzi:
Miałem podobny problem i stwierdziłem, że po prostu brakuje mi zależności (libssl-dev, dla mnie). Zgodnie z https://cryptography.io/en/latest/installation/ upewnij się, że wszystkie zależności są spełnione:
W systemie Windows
Jeśli korzystasz z systemu Windows, musisz upewnić się, że masz zainstalowany OpenSSL. Dostępne są wstępnie skompilowane pliki binarne. Jeśli instalacja znajduje się w nietypowej lokalizacji, ustaw zmienne środowiskowe LIB i INCLUDE, aby uwzględnić odpowiednie lokalizacje. Na przykład:
Budowanie kryptografii w systemie Linux
kryptografia powinna się bardzo łatwo budować na Linuksie, pod warunkiem, że masz kompilator C, nagłówki dla Pythona (jeśli nie używasz pypy) oraz nagłówki dla bibliotek OpenSSL i bibliotek libffi dostępnych w twoim systemie.
W przypadku Debiana i Ubuntu następujące polecenie zapewni zainstalowanie wymaganych zależności:
W przypadku Fedory i pochodnych RHEL następujące polecenie zapewni zainstalowanie wymaganych zależności:
Powinieneś być teraz w stanie zbudować i zainstalować kryptografię w zwykły sposób.
źródło
libffi-dev
pakiet jest w ogóle kluczem. Nie musiałem nic więcej konfigurować, ale nazwa tego pakietu nie pojawiła się w dzienniku błędów: - / Dziękuję.python-dev
wpython3-dev
przypadku korzystania python3To jest skrócona wersja informacji znajdujących się na stronie dokumentacji instalacyjnej kryptografii . Sprawdź tę stronę, aby uzyskać najnowsze informacje.
Ponieważ wciąż pojawia się to pytanie SO, tutaj też zostawię odpowiedź (jestem jednym z programistów pyca / cryptography). Oto, czego potrzebujesz, aby niezawodnie zainstalować pyca / kryptografię na 3 głównych platformach.
Należy pamiętać, że we wszystkich tych przypadkach zdecydowanie zaleca się instalację w virtualenv, a nie w globalnej przestrzeni pakietów. Nie jest to specyficzne dla kryptografii, ale raczej ogólna rada, aby zapewnić niezawodność instalacji Pythona. Globalna przestrzeń pakietów w systemie operacyjnym pod warunkiem, że Python jest własnością systemu, a instalacja rzeczy za pomocą pipa wymaga problemów.
Windows
Uaktualnij do najnowszej wersji PIP (8.1.2 od czerwca 2016 r.) I tylko
pip install cryptography
zarówno kryptografia, jak i cffi są dostarczane jako koła połączone statycznie.
OS X
Uaktualnij do najnowszej wersji PIP (8.1.2 od czerwca 2016 r.) I tylko
pip install cryptography
zarówno kryptografia, jak i cffi są dostarczane jako koła połączone statycznie. Będzie to działać dla Pyenv Python, Python systemowy, Homebrew Python itp. Dopóki korzystasz z najnowszego pipa, nie potrzebujesz nawet kompilatora.
Linux
Od wersji 2.0 kryptografia dostarcza koła manylinux1. Oznacza to, że użytkownicy z pipem 8.1+ pracujący w dystrybucji opartej na glibc (prawie wszystko oprócz Alpine Linux) i na x86 / x86-64 (przepraszam ludzi Raspberry Pi) nie potrzebują już kompilatora ani nagłówków, ponieważ automatycznie otrzymamy prekompilowane koło . Pierwszą rzeczą, którą powinieneś spróbować, jest uaktualnienie swojego pipa!
Jeśli nie jesteś kompatybilny z manylinux1, oto co musisz zrobić:
Będziesz potrzebował kompilatora C, libffi + jego nagłówki programistyczne i openssl + jego nagłówki programistyczne.
Dystrybucje pochodzące z Debiana lub Ubuntu
apt-get install build-essential libssl-dev libffi-dev python-dev
śledzony przezpip install cryptography
Rozkłady pochodne Red Hat
yum install gcc openssl-devel libffi-devel python-devel
śledzony przezpip install cryptography
źródło
pip
który jest stary, a następnie rozwiązanie OSX działa jak urok. (pip 9.0.1
,MacOS Sierra
)Dla tych, którzy używają OS X, oto, co zadziałało dla mnie:
(Uruchamianie 10.9 Mavericks)
Możesz także spróbować scalić flagi i polecenia pip z następującymi komentarzami:
źródło
CFLAGS="-I/usr/include" pip install cryptography
od reaperhulk pracował dla mnie na Mavericks.export
nieenv
, ale inaczej działa.$ ARCHFLAGS="-arch x86_64" LDFLAGS="-L/usr/local/opt/openssl/lib" CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
pracował dla mniemacOS 10.12
zPython3.7
(w virtualenv), kiedy trzebacryptography
, aby zainstalowaćansible
.To działało dla mnie w El Capitan
Możesz również sprawdzić wątek tutaj: https://github.com/pyca/cryptography/issues/2350
źródło
To rozwiązało problem dla mnie (Ubuntu 16.04):
a potem działało tak:
źródło
Najwyraźniej w najnowszych wersjach OSX może to być spowodowane wysyłką przez Apple własnej wersji OpenSSL, która nie działa z biblioteką kryptograficzną.
Najnowsze wersje biblioteki kryptograficznej są dostarczane z własnymi natywnymi zależnościami, ale aby je uzyskać, musisz zaktualizować pip, a być może także wirtualną środowisko. Dla mnie rozwiązaniem było:
źródło
Jak rozwiązałem „Niepowodzenie czyszczenia kompilacji katalogu do kryptografii”
(przybyłem tutaj z Google, aby uzyskać wynik tego błędu).
Uwaga : za pomocą virtualenv
TL; DR:
mój plik
/etc/apt/sources.list
nie został poprawnie skonfigurowany dla mojego debiana 8.Objaśnienia:
Chciałem zainstalować Paramiko. Paramiko potrzebuje kryptografii.
Mam te błędy: po pierwsze z
pip install cryptography
:a następnie z
sudo apt-get install build-essential
:(Nie dokładnie takie same błędy jak PO, ale jestem tutaj, aby pomóc w końcu )
Rozwiązywanie:
Po przetestowaniu prawie każdego polecenia z każdego postu kończę na
https://wiki.debian.org/SourcesList
i skopiowałem wkleiłem moją odpowiednią konfigurację do pliku
/etc/apt/sources.list
następnie:
sudo aptitude update
i wtedy
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
i wtedy
pip install cryptography
hth
źródło
Próbowałem wielu rozwiązań powyżej, ale dopiero po instalacji następującej biblioteki mogłem zainstalować
cryptography
:Używam Ubuntu 18.04, ale będzie działać również na Ubuntu 18.10.
źródło
To zadziałało dla mnie (używam Ubuntu 14.04):
najpierw zainstaluj libffi-dev libssl-dev libpython2.7-dev:
następnie wewnątrz virtualenv:
Źródła:
https://stackoverflow.com/a/32800685/5123544
https://stackoverflow.com/a/29202163/5123544
źródło
Odpowiedź Nicka Woodhama nie działała dla mnie na OSX 10.11 El Capitan, ale tak się stało.
źródło
CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography
i został zainstalowany. Musiałem również dodać,LDFLAGS="-L/usr/local/opt/openssl/lib"
aby biblioteka mogła się załadować. Wydaje się, że komentarz Deana Christiana Armady robi to samo, ale używa zmiennych wygenerowanych przez napar zamiast kodować na stałe.Jeśli używasz Python3, musisz zainstalować
python3-dev
. To naprawiło mój problemsudo apt-get install python3-dev
.źródło
Miałem problemy z instalacją
cryptography==1.7.1
na Ubuntu 16.04 i żadna z powyższych odpowiedzi nie pomogła. Zaktualizowałem więc wymaganie do kompatybilnego 1.8.2 i instalacja zakończyła się powodzeniem. Zauważ, że nadal będziesz potrzebować podstaw kompilacji i innych zależności wymienionych w górnej (najbardziej pozytywnej) odpowiedzi .źródło
Miałem problem z uruchomieniem,
sudo pip install cryptography
ponieważ nie mógł znaleźć FFI podczas próby kompilacji. (OSX - Yosemite)Rozwiązałem to, pobierając libffi i konfigurując env var.
źródło
Działa to na El Capitan z MacPorts:
źródło
Jeśli budujesz dystrybucji pakietu Python w .gitlab-ci.yml akt dla GitLab CI, który używa runner gitlab wdrożony w maszynie AWS EC2
źródło
Zauważyłem, że oryginalny plakat wyraźnie używał instalacji systemu Windows ... a najlepsze odpowiedzi powyżej dotyczą wszystkich innych systemów operacyjnych ... więc proszę bardzo. Zakłada się, że zainstalowałeś Python 2.7, który jest najczęściej obsługiwaną (choć starą) wersją.
Uruchom ponownie pip install (pakiet) np
źródło
Ostatnio spotkałem podobny problem. W moim przypadku wersje
cffi
icryptography
napisane w wymagania.txt nie były kompatybilne (cffi == 1.8.9 i kryptografia == 1.9). Rozwiązałem aktualizacjęcffi
za pomocą ostatniej dostępnej wersji.źródło
Tak naprawdę natknąłem się na ten sam problem, próbując zainstalować Scrapy, który zależy od zainstalowanej najpierw kryptografii. Jestem na Win764-bit z zainstalowanym 64-bitowym Python 2.7. Odpowiedź @ jsonm ostatecznie dla mnie zadziałała, ale najpierw musiałem skopiować
C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin\vcvarsx86_amd64.bat
dox86_amd64
podkatalogu w tym katalogu bin, abyvcvarsall.bat
przestał zgłaszać błąd informujący o braku konfiguracji. Jeśli musisz skonfigurować zmienne env dla innej konfiguracji, skopiuj do odpowiedniego pliku bat vcvars do odpowiedniego podkatalogu, w przeciwnym razie pierwsze polecenie może nie działać.Następnie uruchomiłem następujące polecenie z wiersza poleceń zgodnie z instrukcjami @ jsonm (poprawione dla mojej konfiguracji) ...
I zadziałało.
źródło
Też miałem ten błąd. Po dalszym otrzymywaniu tego błędu, nawet po zainstalowaniu openSSL, ostatecznie próbowałem zainstalować z plików kół z https://pypi.python.org/pypi/cryptography/0.2.2#downloads . Zadziałało!
źródło
Pobrałem pełny kod źródłowy Paramiko z Pypi i zrobiłem
Python setup.py install
działało bezbłędnie
wszystkie domyślne pakiety pythondev / openssl / libffi są już obecne w rhel.
pobieranie RPM ma niedopasowanie RPM i więcej problemów
źródło
Mam ten sam problem:
Następnie instaluję libffi-devel i problem został rozwiązany
źródło
Te dwa polecenia naprawiły to dla mnie:
Źródło: https://github.com/phusion/passenger/issues/1630#issuecomment-147527656
źródło
brew link openssl --force
na OS X. Zamiast tego po prostu zaktualizuj swój pip do najnowszej wersji, a bez problemu zainstaluje on statycznie połączone koło dla cffi i kryptografii.Rozwiązałem to, uaktualniając z kryptografii 1.9 do 2.4.2
źródło