python - pycrypto documentation
Error al instalar el paquete de criptografĂa de Python con PIP y setup.py (21)
Aparentemente, en las versiones recientes de OSX esto puede deberse a que Apple haya enviado su propia versión de OpenSSL, que no funciona con la biblioteca de criptografía.
Las versiones recientes de la biblioteca de criptografía se envían con sus propias dependencias nativas, pero para obtenerlas necesitará actualizar pip, y posiblemente también env virtual. Así que para mí, la solución fue:
pip install --upgrade --force-reinstall pip virtualenv
Cuando trato de instalar el paquete de criptografía para Python a través de la pip install cryptography
o descargando el paquete desde su sitio y ejecutando python setup.py
, obtengo el siguiente error:
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
Encontré otros mensajes de error de egg_info ( here y here ) pero las soluciones que proporcioné no solucionaron mi problema. Además, puedo instalar otros paquetes a través de PIP.
PIP versión 1.5.4 setuptools versión 2.2
Cómo resolví "Error en la limpieza del directorio de compilación para la criptografía"
(Vine aquí de google para obtener este error.)
nota : utilizando un virtualenv
TL; DR:
mi archivo /etc/apt/sources.list
no se configuró correctamente para mi debian 8.
Explicaciones:
Quería instalar paramiko. Paramiko necesita criptografía.
Me dieron estos errores: primero con la 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/
y luego con 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.
(No son exactamente los mismos errores que OP, pero estoy aquí para ayudar con el tiempo )
Resolviendo
Después de probar casi todos los comandos de cada publicación, acabo de continuar.
https://wiki.debian.org/SourcesList
y copie mi configuración adecuada en el archivo /etc/apt/sources.list
entonces:
sudo aptitude update
y entonces
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
y entonces
pip install cryptography
hth
De hecho, me encontré con este mismo problema tratando de instalar Scrapy, que depende de la criptografía que se instale primero. Estoy en Win764-bit con Python 2.7 64-bit instalado. La respuesta de @jsonm finalmente funcionó para mí, pero primero tuve que Copiar C:/Program Files (x86)/Microsoft Visual Studio 9.0/VC/bin/vcvarsx86_amd64.bat
en el x86_amd64
dentro de ese dir. bin para que vcvarsall.bat
se detuviera lanzando un error diciendo que faltaba la configuración. Si necesita configurar env vars para una configuración diferente, asegúrese de copiar en el archivo correspondiente vcvars bat al subdirector correspondiente o el primer comando a continuación podría no funcionar.
Luego ejecuté lo siguiente desde una línea de comandos según las instrucciones de @jsonm (ajustadas para mi configuración) ...
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
Y funcionó.
Estaba teniendo problemas con la instalación de cryptography==1.7.1
en Ubuntu 16.04 y ninguna de las respuestas anteriores me ayudó. Entonces, actualicé el requisito a un 1.8.2 compatible y la configuración fue exitosa. Tenga en cuenta que todavía necesitaría elementos esenciales de compilación y otras dependencias mencionadas en la respuesta superior (la más votada) .
Estaba teniendo problemas para ejecutar la sudo pip install cryptography
porque no encontraba ffi al intentar compilar. (OSX - Yosemite)
Lo resolví descargando libffi y configurando la env var.
$ brew install pkg-config libffi
$ export PKG_CONFIG_PATH=/usr/local/Cellar/libffi/3.0.13/lib/pkgconfig/
$ pip install cryptography
Esto funcionó para mí (estoy usando Ubuntu 14.04):
primero instale libffi-dev libssl-dev libpython2.7-dev:
sudo apt-get install libffi-dev libssl-dev libpython2.7-dev
entonces dentro de virtualenv:
pip install cryptography
pip install pyopenssl ndg-httpsclient pyasn1
Fuentes:
https://.com/a/32800685/5123544
https://.com/a/29202163/5123544
Esto funciona en El Capitán con MacPorts:
$ sudo port install openssl
$ env LDFLAGS="-L/opt/local/lib" CFLAGS="-I/opt/local/include" pip install cryptography
Esto me funcionó en El Capitán.
brew install pkg-config libffi openssl
env LDFLAGS="-L$(brew --prefix openssl)/lib" CFLAGS="-I$(brew --prefix openssl)/include" pip install cryptography
También puede consultar el hilo aquí: https://github.com/pyca/cryptography/issues/2350
Esto solucionó el problema para mí (Ubuntu 16.04):
sudo apt-get install build-essential libssl-dev libffi-dev python-dev python3-dev
Y luego funcionaba así:
pip install cryptography
pip install pyopenssl ndg-httpsclient pyasn1
La respuesta de Nick Woodham no funcionó en OSX 10.11 El Capitán para mí, pero esto sí.
brew install openssl
CFLAGS="-I/usr/local/opt/openssl/include" pip install cryptography==0.8
Noté que el póster original estaba claramente usando una instalación de Windows ... y las mejores respuestas anteriores son todas para otros sistemas operativos ... así que aquí va. Esto supone que ha instalado Python 2.7, que es la versión con mayor compatibilidad (aunque antigua).
- Instale el " Compilador de Visual C ++ para Python "
- Abra una ventana del símbolo del sistema administrativo
Vuelva a ejecutar pip instalar (paquete) por ejemplo
cd C:/Python27/Scripts pip install cryptography (or pycrypto, fabric, etc)
Para aquellos de ustedes que ejecutan OS X, esto es lo que funcionó para mí:
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
(Corriendo 10.9 Mavericks)
También puede intentar fusionar los indicadores y los comandos pip a lo siguiente por el comentario a continuación:
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
Si está usando python3, necesita instalar python3-dev
. Esto solucionó mi problema sudo apt-get install python3-dev
.
Tuve un problema similar y descubrí que simplemente me estaba perdiendo una dependencia (libssl-dev, para mí). Como se menciona en https://cryptography.io/en/latest/installation/ , asegúrese de que se cumplan todas las dependencias:
En Windows
Si está en Windows, deberá asegurarse de tener OpenSSL instalado. Hay binarios precompilados disponibles. Si su instalación se encuentra en una ubicación inusual, establezca las variables de entorno LIB e INCLUDE para incluir las ubicaciones correspondientes. Por ejemplo:
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
Construyendo criptografía en Linux
la criptografía debería construirse muy fácilmente en Linux siempre que tenga un compilador de C, encabezados para Python (si no está utilizando pypy) y encabezados para las bibliotecas OpenSSL y libffi disponibles en su sistema.
Para Debian y Ubuntu , el siguiente comando asegurará que las dependencias requeridas estén instaladas:
sudo apt-get install build-essential libssl-dev libffi-dev python-dev
Para los derivados de Fedora y RHEL , el siguiente comando garantizará que se instalen las dependencias necesarias:
sudo yum install gcc libffi-devel python-devel openssl-devel
Ahora debería poder construir e instalar criptografía con lo habitual.
pip install cryptography
Yo también tuve este error.Después de continuar recibiendo este error, incluso después de instalar openSSL, finalmente intenté instalar desde archivos de la rueda desde https://pypi.python.org/pypi/cryptography/0.2.2#downloads . ¡Funcionó!
Esta es una versión condensada de la información que se encuentra en la página de documentos de https://cryptography.io/en/latest/installation/ de criptografía. Consulta esa página para conocer los últimos detalles.
Como esta pregunta SO sigue apareciendo, también dejaré una respuesta aquí (soy uno de los desarrolladores de pyca / cryptography). Esto es lo que necesita para instalar confiablemente pyca / criptografía en las 3 plataformas principales.
Tenga en cuenta que en todos estos casos, se recomienda encarecidamente que instale en un virtualenv y no en el espacio de paquete global. Esto no es específico de la criptografía, sino que es un consejo genérico para que la instalación de Python sea confiable. El espacio de paquete global en el sistema operativo proporcionado Pythons es propiedad del sistema y la instalación de las cosas a través de pip en él está pidiendo problemas.
Windows
Actualice a la última versión de pip (8.1.2 en junio de 2016) y solo pip install cryptography
La criptografía y el cffi se envían como ruedas enlazadas estáticamente.
OS X
Actualice a la última versión de pip (8.1.2 en junio de 2016) y solo pip install cryptography
La criptografía y el cffi se envían como ruedas enlazadas estáticamente. Esto funcionará para Pyenv Python, sistema Python, homebrew Python, etc. Mientras estés en el último pip, ni siquiera necesitarás un compilador.
Linux
A partir de la versión 2.0, la criptografía incluye ruedas Manylinux1. Esto significa que los usuarios con pip 8.1+ que se ejecutan en una distribución basada en glibc (casi todo excepto Alpine Linux) y en x86 / x86-64 (lo siento la gente de Raspberry Pi) ya no necesitan un compilador o encabezados porque obtendrás una rueda precompilada automáticamente . Entonces, ¡lo primero que debes intentar es actualizar tu pip!
Si no eres compatible con manylinux1, esto es lo que debes hacer:
Necesitará un compilador de C, libffi + sus encabezados de desarrollo y openssl + sus encabezados de desarrollo.
Debian o distribuciones derivadas de Ubuntu
apt-get install build-essential libssl-dev libffi-dev python-dev
seguido de
pip install cryptography
Distribuciones derivadas de Red Hat.
yum install gcc openssl-devel libffi-devel python-devel
seguido de
pip install cryptography
Descargué el código fuente completo de paramiko de pypi e hice
python setup.py install
funcionó perfectamente
todos los paquetes predeterminados de pythondev / openssl / libffi ya están presentes en rhel.
la descarga de rpms tiene desajustes de rpm y más problemas
Esos dos comandos lo arreglaron para mí:
brew install openssl
brew link openssl --force
Fuente: https://github.com/phusion/passenger/issues/1630#issuecomment-147527656
Estoy teniendo el mismo problema:
pip install cryptography
.
.
.
Installing collected packages: cffi, cryptography
Running setup.py install for cffi ... error
Luego instalo libffi-devel y el problema se soluciona.
yum install libffi-devel
Me encontré con un problema similar recientemente. En mi caso, las versiones cffi
y cryptography
escritos en Requirements.txt no eran compatibles (cffi == 1.8.9 y cryptography == 1.9). Resolví la actualización cffi
con la última versión disponible.
Probé muchas soluciones arriba, pero solo después de la instalación de la siguiente biblioteca, pude instalar cryptography
:
sudo apt install libssl1.0
Estoy usando Ubuntu 18.04