2011-09-07 11 views
19

Qualche idea su cosa causa l'errore di seguito?easy_install Errore PyOpenSSL

Io uso CentOS Linux con OpenSSL-0.9.8e devel.i386-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 
+0

Ho appena iniziato a succedere anche a me. # uname -a Linux domU-xxxxxxxxx xxxx-2.fc8xen # 1 SMP ven feb 15 12:34:28 EST 2008 x86_64 x86_64 x86_64 GNU/Linux –

+0

Ho postato un bug report a pyOpenSSL e sono tornato a 0.12 – grep

risposta

25

pyOpenSSL 0,13 introdotto il supporto per l'ame (S) erver (N) (I) ndication TLS estensione . Questa estensione consente ai client di comunicare al server il nome host con cui si prevede di parlare, consentendo al server di selezionare un certificato adatto da presentare.

Il supporto per SNI è stato introdotto in OpenSSL 0.9.8f. Pertanto, pyOpenSSL 0.13 verrà creato con OpenSSL 0.9.8f o successivo, ma non con OpenSSL 0.9.8e o versioni precedenti, in cui le API che si aspetta siano wrapping non esistono.

Forse una versione più recente di pyOpenSSL renderà opzionali questi binding, ripristinando il supporto per OpenSSL 0.9.8e e versioni precedenti. Tuttavia, allo stesso modo, una versione più recente di OpenSSL funzionerà anche con pyOpenSSL 0.13.

Il progetto pyOpenSSL emette le versioni preliminari. Test diffusi su versioni preliminari possono aiutare a evitare casi come questo. Raccomando che chiunque si affidi a pyOpenSSL abbonarsi al (molto basso traffico) pyOpenSSL user list (o allo SourceForge) e fare ciò che è possibile provare quando esce una pre-release, prima che il rilascio sia finalizzato.

+16

Proprio così! Ho avuto lo stesso problema e ho trovato più facile installare pyOpenSSL 0.12 rispetto all'aggiornamento di openssl da 0.9.8 a 0.9.8f per ottenere 0.13 per funzionare. Ecco il comando che ho usato: easy_install http: //pypi.python .org/packages/source/p/pyOpenSSL/pyOpenSSL-0.12.tar.gz –

+3

Thanasis e Jean-Paul, grazie mille per vostra informazione. Vorrei aver trovato questa pagina un paio di ore fa, o potervi dare un grande abbraccio ai ragazzi per avermi aiutato in questo. Avevo appena rinunciato a lavorare su Centos5. Grazie ancora! –

6

Mi sono imbattuto in questo mentre provavo a installare Scrapy. Per me, la risposta di Thanasis non ha funzionato. Dopo un po 'di più di Google e installare in modo casuale cose

yum install python-devel 

permesso la Scrapy installazione di correre per me (CentOS rilasciano 6.3 (finale))

+1

Ho anche richiesto quanto segue: 'sudo yum -y installa libffi-devel libssl-devel' –

5

Per quanto mi riguarda ho dovuto installare OpenSSL-devel librerie:

yum install openssl-devel 

Stava cercando di installare il ciclone/ciclone/twisted python evented lib.

6

Non è esattamente quello che viene chiesto, ma in Ubuntu 12.04 può essere installato con:

sudo apt-get install python-openssl 
2

Se non è necessario utilizzare l'ultimo pyOpenSSL, è appena tornato a 0.12, questo è il modo più semplice.

pip install pyOpenSSL==0.12 

Verificare la risposta di @ Jean-Paul per i dettagli.

27

Per installarlo in virtualenv, è necessario installare prima i pacchetti richiesti.Su Ubuntu:

sudo apt-get install python-dev libffi-dev libssl-dev 

allora si può solo scrivere:

pip install pyopenssl 
+4

dovrebbe essere' libffi-dev' – Xiao

+0

anche libssl-dev (per me atleast ...) –

+0

Penso che la domanda sia chiara sul fatto che non è basato su OS –

1

tenta di installare:

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

1

non ho potuto installare libssl-devel o libssl-dev, ma questo ha funzionato per me su CentOS 6 (quando pyOpenSSL 0.13.1 è stato precedentemente installato):

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 
Problemi correlati