web-dev-qa-db-ja.com

easy_install PyOpenSSLエラー

以下のエラーの原因について何か考えはありますか?

私はopenssl-devel.i386 0.9.8e-12.el5_5.7でLinux centosを使用しています

$ 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

Virtualenvにインストールするには、まず必要なパッケージをインストールする必要があります。 ubuntuの場合:

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

次に、単に入力することができます:

pip install pyopenssl

pyOpenSSL 0.13では、(S)erver(N)ame(I)ndication TLS拡張のサポートが導入されました。この拡張機能により、クライアントは、サーバーが通信する予定のホスト名をサーバーに通知できるため、サーバーは提示する適切な証明書を選択できます。

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 )にサブスクライブし、プレリリースが出たときにできることをテストすることをお勧めします、リリースが確定する前。

25

正確には何が要求されるのではありませんが、buntu 12.04では、次のようにインストールできます。

Sudo apt-get install python-openssl
6
Daniel Reis

Scrapyをインストールしようとしたときに、これに遭遇しました。私にとって、タナシスの答えはうまくいきませんでした。さらにいくつかのGoogleとランダムに物事をインストールした後

yum install python-devel

scrapyインストールの実行を許可しました(CentOSリリース6.3(最終))

6
Maudlin

私にとっては、openssl-devel libsをインストールする必要がありました。

yum install openssl-devel

サイクロン/トルネード/ツイストpython evented lib。

5
Leon Waldman

最新のpyOpenSSLを使用する必要がない場合は、0.12にロールバックするだけです。これが最も簡単な方法です。

pip install pyOpenSSL==0.12

詳細については、@ Jean-Paulの回答を確認してください。

2
hahakubile

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
BuvinJ

インストールしてみてください:

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

1
Boubakr

同じ問題がありました。少しチェックして、それを解決する方法を見つけました: https://bugs.launchpad.net/pyopenssl/+bug/845445

あなたが探しているのは「CentOS 5.6でフィリップの修正が機能する」です: https://bugs.launchpad.net/pyopenssl/+bug/845445/comments/9

私たちの場合、これはうまくいきました。

0