以下のエラーの原因について何か考えはありますか?
私は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
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 )にサブスクライブし、プレリリースが出たときにできることをテストすることをお勧めします、リリースが確定する前。
正確には何が要求されるのではありませんが、buntu 12.04では、次のようにインストールできます。
Sudo apt-get install python-openssl
Scrapyをインストールしようとしたときに、これに遭遇しました。私にとって、タナシスの答えはうまくいきませんでした。さらにいくつかのGoogleとランダムに物事をインストールした後
yum install python-devel
scrapyインストールの実行を許可しました(CentOSリリース6.3(最終))
私にとっては、openssl-devel libsをインストールする必要がありました。
yum install openssl-devel
サイクロン/トルネード/ツイストpython evented lib。
最新のpyOpenSSL
を使用する必要がない場合は、0.12にロールバックするだけです。これが最も簡単な方法です。
pip install pyOpenSSL==0.12
詳細については、@ Jean-Paulの回答を確認してください。
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
インストールしてみてください:
Sudo apt-get install -y python-dev libssl-dev libffi-dev
同じ問題がありました。少しチェックして、それを解決する方法を見つけました: https://bugs.launchpad.net/pyopenssl/+bug/845445
あなたが探しているのは「CentOS 5.6でフィリップの修正が機能する」です: https://bugs.launchpad.net/pyopenssl/+bug/845445/comments/9
私たちの場合、これはうまくいきました。