19

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

私は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
4

9 に答える 9

27

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

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

次に、次のように入力します。

pip install pyopenssl
于 2014-07-16T10:14:54.817 に答える
25

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

SNI のサポートは、OpenSSL 0.9.8f で導入されました。したがって、pyOpenSSL 0.13 は OpenSSL 0.9.8f 以降でビルドされますが、ラッピングされると予想される API が存在しない OpenSSL 0.9.8e 以前ではビルドされません。

おそらく、pyOpenSSL の新しいバージョンでは、これらのバインドがオプションになり、OpenSSL 0.9.8e 以前のサポートが復元されます。ただし、同様に、OpenSSL の新しいバージョンも pyOpenSSL 0.13 で動作します。

pyOpenSSL プロジェクトはプレリリースを発行します。プレリリースの広範なテストは、このようなケースを回避するのに役立ちます。pyOpenSSL に依存している人は誰でも (トラフィックが非常に少ない) pyOpenSSL ユーザー リスト(またはSourceForge ) に登録し、リリースが確定する前に、プレリリースが出たときにできることをテストすることをお勧めします。

于 2011-09-13T02:31:49.753 に答える
6

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

yum install python-devel

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

于 2012-10-04T08:49:15.183 に答える
6

正確には何を求められているわけではありませんが、Ubuntu 12.04では次のようにインストールできます。

sudo apt-get install python-openssl
于 2013-01-02T12:08:10.647 に答える
5

私の場合、openssl-devel ライブラリをインストールする必要がありました。

yum install openssl-devel

Cyclone/tornado/twisted python イベント ライブラリをインストールしようとしていました。

于 2012-11-16T16:39:59.617 に答える
2

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

pip install pyOpenSSL==0.12

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

于 2014-01-15T06:58:57.480 に答える
1

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

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

于 2015-03-09T18:12:35.867 に答える
0

同じ問題がありました。少し調べてみると、解決する方法が見つかりました: https://bugs.launchpad.net/pyopenssl/+bug/845445

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

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

于 2013-03-29T13:05:06.503 に答える