Une idée sur la cause de l'erreur ci-dessous?
J'utilise des centos Linux avec 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
Pour l'installer sous virtualenv, vous devez d'abord installer les packages requis. Sur Ubuntu:
Sudo apt-get install python-dev libffi-dev libssl-dev
Ensuite, vous pouvez simplement taper:
pip install pyopenssl
pyOpenSSL 0.13 introduit la prise en charge de l'extension TLS de l'indicatif (S) erver (N) ame (I). Cette extension permet aux clients d'indiquer au serveur le nom d'hôte avec lequel ils s'attendent, ce qui leur permet de sélectionner un certificat approprié à présenter.
La prise en charge de SNI a été introduite dans OpenSSL 0.9.8f. Ainsi, pyOpenSSL 0.13 sera construit avec OpenSSL 0.9.8f ou ultérieure, mais pas avec OpenSSL 0.9.8e ou antérieure, où les API qu’il espère encapsuler n'existent pas.
Peut-être qu'une version plus récente de pyOpenSSL rendra ces liaisons facultatives, rétablissant la prise en charge d'OpenSSL 0.9.8e et des versions antérieures. Cependant, de même, une version plus récente d'OpenSSL fonctionnera également avec pyOpenSSL 0.13.
Le projet pyOpenSSL génère des pré-versions. Des tests généralisés sur les versions préliminaires peuvent aider à éviter des cas comme celui-ci. Je recommande à quiconque s’appuyant sur pyOpenSSL de s’abonner à la liste des utilisateurs (trafic très faible) pyOpenSSL (ou sur SourceForge ) et de faire les tests qui s’imposent lorsqu’une pré-version est publiée, avant que la version soit finalisée .
Ce n'est pas exactement ce qui est demandé, mais dans Ubuntu 12.04 il peut être installé avec:
Sudo apt-get install python-openssl
Je suis tombé dessus en essayant d'installer Scrapy. Pour moi, la réponse de Thanasis n'a pas fonctionné. Après un peu plus de Google et installer des choses au hasard
yum install python-devel
autorisé l'installation de Scrapy à s'exécuter pour moi (CentOS version 6.3 (finale))
Pour moi, j'ai dû installer les bibliothèques openssl-devel:
yum install openssl-devel
Essayait d'installer le cyclone/tornado/twisted python evented lib.
Si vous n'avez pas besoin d'utiliser la dernière pyOpenSSL
, revenez à la version 0.12, c'est la méthode la plus simple.
pip install pyOpenSSL==0.12
Vérifiez la réponse de @ Jean-Paul pour plus de détails.
Je ne pouvais pas installer libssl-devel ou libssl-dev, mais cela fonctionnait pour moi sur CentOS 6 (lorsque pyOpenSSL 0.13.1 était déjà installé):
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
Essayez d'installer:
Sudo apt-get install -y python-dev libssl-dev libffi-dev
On avait le même problème. En vérifiant un peu, nous avons trouvé un moyen de le résoudre: https://bugs.launchpad.net/pyopenssl/+bug/845445
Ce que vous cherchez, c'est "Le correctif de Philip fonctionne pour moi sur CentOS 5.6:": https://bugs.launchpad.net/pyopenssl/+bug/845445/comments/9
Cela a bien fonctionné dans notre cas.