openssl pyopenssl

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.



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.