easy_install PyOpenSSL error
(9)
¿Alguna idea acerca de qué causa el error a continuación?
Yo uso centos de Linux con openssl-devel.i386 0.9.8e-12.el5_5.7
$ easy_install PyOpenSSL
Searching for PyOpenSSL
Reading http://pypi.python.org/simple/PyOpenSSL/
Reading http://launchpad.net/pyopenssl
Reading http://pyopenssl.sourceforge.net/
Best match: pyOpenSSL 0.13
Downloading http://pypi.python.org/packages/source/p/pyOpenSSL/pyOpenSSL-0.13.tar.gz#md5=767bca18a71178ca353dff9e10941929
Processing pyOpenSSL-0.13.tar.gz
Running pyOpenSSL-0.13/setup.py -q bdist_egg --dist-dir /tmp/easy_install-0Dunib/pyOpenSSL-0.13/egg-dist-tmp-aV6OCC
warning: no previously-included files matching ''*.pyc'' found anywhere in distribution
OpenSSL/ssl/connection.c: In function ‘ssl_Connection_set_context’:
OpenSSL/ssl/connection.c:289: warning: implicit declaration of function ‘SSL_set_SSL_CTX’
OpenSSL/ssl/connection.c: In function ‘ssl_Connection_get_servername’:
OpenSSL/ssl/connection.c:313: error: ‘TLSEXT_NAMETYPE_host_name’ undeclared (first use in this function)
OpenSSL/ssl/connection.c:313: error: (Each undeclared identifier is reported only once
OpenSSL/ssl/connection.c:313: error: for each function it appears in.)
OpenSSL/ssl/connection.c:320: warning: implicit declaration of function ‘SSL_get_servername’
OpenSSL/ssl/connection.c:320: warning: assignment makes pointer from integer without a cast
OpenSSL/ssl/connection.c: In function ‘ssl_Connection_set_tlsext_host_name’:
OpenSSL/ssl/connection.c:346: warning: implicit declaration of function ‘SSL_set_tlsext_host_name’
error: Setup script exited with error: command ''gcc'' failed with exit status 1
Me encontré con esto mientras trataba de instalar Scrapy. Para mí, la respuesta de Thanasis no funcionó. Después de un poco más de Google y la instalación de cosas al azar
yum install python-devel
Permití que la instalación de Scrapy se ejecute para mí (versión CentOS 6.3 (final))
No es exactamente lo que se solicita, pero en Ubuntu 12.04 se puede instalar con:
sudo apt-get install python-openssl
No pude instalar libssl-devel o libssl-dev, pero esto funcionó para mí en CentOS 6 (cuando pyOpenSSL 0.13.1 estaba instalado previamente):
sudo yum -y remove pyOpenSSL.x86_64
sudo yum -y install libffi-devel
#sudo yum -y install libssl-devel
sudo yum -y install openssl-devel
sudo yum -y install python-devel
sudo pip install pyopenssl
Para instalarlo bajo virtualenv, primero debe instalar los paquetes requeridos. En ubuntu:
sudo apt-get install python-dev libffi-dev libssl-dev
Entonces puede simplemente escribir:
pip install pyopenssl
Para mí tuve que instalar el openssl-devel libs:
yum install openssl-devel
Estaba tratando de instalar el ciclón / tornado / torcido python evented lib.
Si no necesita usar el pyOpenSSL
, simplemente revertido a 0.12, esta es la forma más simple.
pip install pyOpenSSL==0.12
Verifique la respuesta de @Jean-Paul para detalles.
Teníamos el mismo problema. Comprobando un poco encontramos una forma de resolverlo: https://bugs.launchpad.net/pyopenssl/+bug/845445
Lo que estás buscando es "La solución de Philip me funciona en CentOS 5.6:": https://bugs.launchpad.net/pyopenssl/+bug/845445/comments/9
Esto funcionó bien en nuestro caso.
Trate de instalar:
sudo apt-get install -y python-dev libssl-dev libffi-dev
pyOpenSSL 0.13 introdujo la compatibilidad con la extensión TLS de (S) erver (N) ame (I) ndication. Esta extensión permite a los clientes decirle al servidor con qué nombre de host esperan hablar, lo que permite al servidor seleccionar un certificado adecuado para presentar.
El soporte para SNI se introdujo en OpenSSL 0.9.8f. Por lo tanto, pyOpenSSL 0.13 se compilará con OpenSSL 0.9.8f o posterior, pero no con OpenSSL 0.9.8 o anterior, donde no existen las API que espera que se ajusten.
Quizás una versión más reciente de pyOpenSSL hará que estos enlaces sean opcionales, restaurando el soporte para OpenSSL 0.9.8e y anteriores. Sin embargo, de manera similar, una versión más nueva de OpenSSL también funcionará con pyOpenSSL 0.13.
El proyecto pyOpenSSL emite versiones preliminares. Las pruebas generalizadas de versiones previas pueden ayudar a evitar casos como este. Recomiendo que cualquiera que confíe en pyOpenSSL se suscriba a la lista de usuarios de pyOpenSSL (con muy poco tráfico) (o en SourceForge ) y haga las pruebas que pueda cuando salga una versión preliminar, antes de que finalice la versión.