web-dev-qa-db-fra.com

erreur easy_install PyOpenSSL

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
19
user933589

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
27

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 .

25
Jean-Paul Calderone

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
6
Daniel Reis

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))

6
Maudlin

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.

5
Leon Waldman

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. 

2
hahakubile

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
1
BuvinJ

Essayez d'installer:

Sudo apt-get install -y python-dev libssl-dev libffi-dev

1
Boubakr

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.

0
NetworkSys Co. Ltd