easy_install PyOpenSSL ошибка - PullRequest
       6

easy_install PyOpenSSL ошибка

19 голосов
/ 08 сентября 2011

Есть идеи о причинах ошибки ниже?

Я использую Linux Centos с 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

Ответы [ 9 ]

27 голосов
/ 16 июля 2014

Для того, чтобы установить его под virtualenv, вы должны сначала установить необходимые пакеты. На Ubuntu:

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

Тогда вы можете просто набрать:

pip install pyopenssl
25 голосов
/ 13 сентября 2011

В pyOpenSSL 0.13 введена поддержка расширения (S) erver (N) ame (I) ndication. Это расширение позволяет клиентам сообщать серверу, с каким именем хоста они ожидают общаться, что позволяет серверу выбрать подходящий сертификат для представления.

Поддержка SNI была введена в OpenSSL 0.9.8f. Таким образом, pyOpenSSL 0.13 будет собираться с OpenSSL 0.9.8f или более поздней, но не OpenSSL 0.9.8e или более ранней, где API-интерфейсы, которые он ожидает обернуть, не существуют.

Возможно, более новая версия pyOpenSSL сделает эти привязки необязательными, восстановив поддержку OpenSSL 0.9.8e и более ранних версий. Однако, аналогично, более новая версия OpenSSL также будет работать с pyOpenSSL 0.13.

Проект pyOpenSSL выпускает предварительные версии. Широко распространенное тестирование предварительных выпусков может помочь избежать подобных случаев. Я рекомендую всем, кто полагается на pyOpenSSL, подписаться на (очень низкий трафик) список пользователей pyOpenSSL (или на SourceForge ) и делать то, что вы можете тестировать, когда выходит предварительный релиз, до релиз окончен.

6 голосов
/ 02 января 2013

Не совсем то, что спрашивается, но в Ubuntu 12.04 его можно установить с помощью:

sudo apt-get install python-openssl
6 голосов
/ 04 октября 2012

Я столкнулся с этим при попытке установить Scrapy.Для меня ответ Таназиса не сработал.После еще нескольких попыток Google и случайной установки

yum install python-devel

позволил мне запустить установку Scrapy (выпуск CentOS 6.3 (Final))

5 голосов
/ 16 ноября 2012

Для меня мне пришлось установить openssl-devel libs:

yum install openssl-devel

Пытался установить циклон / торнадо / витая python Evented lib.

2 голосов
/ 15 января 2014

Если вам не нужно использовать последние pyOpenSSL, просто откатитесь до 0,12, это самый простой способ.

pip install pyOpenSSL==0.12

Проверьте ответ @ Jean-Paul для получения подробной информации.

1 голос
/ 02 декабря 2015

Я не смог установить libssl-devel или libssl-dev, но у меня это работало в CentOS 6 (когда ранее был установлен pyOpenSSL 0.13.1):

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 голос
/ 09 марта 2015

Попробуйте установить:

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

0 голосов
/ 29 марта 2013

У нас была такая же проблема.Немного проверив, мы нашли способ решить эту проблему: https://bugs.launchpad.net/pyopenssl/+bug/845445

То, что вы ищете, это «Исправление Филиппа работает для меня на CentOS 5.6:»: https://bugs.launchpad.net/pyopenssl/+bug/845445/comments/9

Это сработалохорошо в нашем случае.

...