2

背景情報:
サーバープログラムを実行しようとしていますpython 2.5.1(サーバーが作成され、テストされたバージョン)。プログラムには、その機能の一部に OpenSSL ライブラリが必要です。実行中の Amazon Linux インスタンスの yum リポジトリに必要なバージョンの Python がないため、ソースから Python 2.5.1 をインストールしました。

Python 2.5.1 でサーバーを実行しようとすると、次のインポート エラーが発生します。

Traceback (most recent call last):  
File "<stdin>", line 1, in <module>  
ImportError: No module named OpenSSL

OpenSSL ライブラリは、Python 2.6 (yum によってインストールされたバージョンの Python) にインポートできるため、インストールされていることがわかっています。私のpython 2.5.1のインストールではそれらが見えないだけです。

また、yum経由でpyOpenSSLをインストールしましたが、うまくいきませんでした。

4

1 に答える 1

3

インストールされた Python ライブラリは、特定のバージョンに固有です。したがって、yum からインストールした pyOpenSSL はシステム python 用になります。代替インストールされた 2.5 python 用に pyOpenSSL の別のインスタンスをインストールする必要があります。

easy_install-2.5python2.5 を使用して distutils をインストールすると、使用できるeasy_install-2.5 pyopenssl(または類似の)があることがわかります。ただし、 の新しいバージョンをインストールしeasy_installて、システム python の既存のものを上書きすることもあることに注意してください (存在する場合)。distutils を既存のパッケージで使用するにはeasy_install-2.7(python 2.7 の場合)。

それは理にかなっていますか?基本的に、各 python は個別であり、独自のライブラリ セットが必要です。対照的に、easy_install はグローバルにインストールされますが、python ごとにバージョン固有の easy_install のコピーがあります...!

easy_install の混乱を避けたい場合は、virtualenv を使用できます。2.5 用の新しい環境を作成し、それを有効にすると、そこに pyopenssl をインストールできます (環境から easy_install を使用)。virtualenv を ysed したことがない人にとっては、より複雑に聞こえるかもしれませんが、少し時間をかけて理解すれば、長期的にはうまくいく可能性があります。

于 2012-06-04T17:56:44.883 に答える