web-dev-qa-db-ja.com

WindowsにPython sslモジュールをインストールする方法は?

Google App EngineLauncherは次のように教えてくれます。

警告appengine_rpc.py:399sslモジュールが見つかりません。 sslモジュールがないと、リモートホストのIDを確認できず、接続が安全でない可能性があります。これを修正するには、 http://pypi.python.org/pypi/ssl からsslモジュールをインストールしてください。

パッケージをダウンロードしたところ、setup.pyファイルが含まれていました。私は走った:

python setup.py install

その後:

Python was built with Visual Studio 2003; blablabla use MinGW32

次に、MinGW32をインストールしましたが、コンパイルが機能しません。コンパイルエラーの終わりには次のものが含まれます。

ssl/_ssl2.c:1561:エラー: `CRYPTO_LOCK 'が宣言されていません(この関数での最初の使用)

エラー:コマンド 'gcc'が終了ステータス1で失敗しました

私は何をすべきか?

21
Jader Dias

Gnuwin32プロジェクトから openssl および libgw32c パッケージを取得し(「開発者ファイル」をダウンロード!)、gnuwin32をインストールした場所に抽出します-またはgnuwin32ツールがない場合それでも、どこにでも抽出できます(例: "C:\ Program Files\gnuwin32")。 「setup.py」ファイルにgnuwin32ディレクトリを入力します(154行目の「C:\ Utils\GnuWin32」を置き換えます)。

その後、問題なくsslモジュールを構築できます。 GCC "4.3.2-tdm-2 mingw32"を使用し、コマンドラインsetup.py build -cmingw32-cmingw32は、Microsoftのコンパイラもインストールしているため、MinGWを強制します)を使用して、自分でテストしました。ビルドが成功した後、setup.py installを実行して、sslをインストールします。

15
AndiDog

AndiDogのアプローチの次の変更を使用する必要がありました。

setup.py build -cmingw32
setup.py install --skip-build

--skip-buildオプションがないと、インストールは再度ビルドを試み、MSVCについて再度文句を言います。

error: Python was built with Visual Studio 2003;
extensions must be built with a compiler than can generate compatible binaries.
Visual Studio 2003 was not found on this system. If you have Cygwin installed,
you can try compiling with MingW32, by passing "-c mingw32" to setup.py.

また、最初にビルドコマンドを使用すると、次のようなエラーが発生しました。

build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x1d): undefined reference to `_imp__PyImport_ImportModule'
build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x34): undefined reference to `_imp__PyObject_GetAttrString'
build\temp.win32-2.5\Release\ssl\_ssl2.o:_ssl2.c:(.text+0x53): undefined reference to `_imp__PyCObject_AsVoidPtr'

これは、元々64ビットバージョンのPython 2.5.4(python-2.5.4.AMD64.msi)をインストールしていたためです。これを削除して、32ビットバージョン(python-2.5.4)をインストールしました。 .msi)。これには、ビルドコマンドが探していたlibpython25.aファイルが含まれます。

9
Saxon Druce

私は100%正しいAndiDogとSaxon Druceの回答を使用しましたが、私のような経験の浅いユーザーには説明が必要な場合があります。

  1. これはWindowsユーザー専用です。

  2. インストールpython 2.5.232ビット-私はx64システムを持っていて、最初にpython 2.5.2 x64をインストールし、提案されたソリューションは私にはまったく機能しないので、32ビットです。

  3. GCCをインストールします- http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%20Installer/Previous/1.1006.0/tdm-gcc-4.5.2.exe/download 、最新バージョンを使用しました。インストール時に[PATH変数に追加]オプションを選択することを忘れないでください。そうしないと、GCCbinフォルダーへのパスを環境変数「path」に自分で追加する必要があります。

  4. Blockquote openssl およびlibgw32cパッケージをgnuwin32プロジェクトから(「開発者ファイル」をダウンロードしてください!)、gnuwin32をインストールした場所に抽出します-またはgnuwin32ツールがまだない場合は、どこにでも抽出できます(例:「C:\ ProgramFiles\gnuwin32」)。 sslライブラリファイルの「setup.py」にgnuwin32ディレクトリを入力します(154行目の「C:\ Utils\GnuWin32」を置き換えます)。

  5. 実行python setup.py build -cmingw32(最も簡単な方法は、cmdを起動し、sslライブラリが抽出されたディレクトリに移動することです)-これにより、sslライブラリがコンパイルされます。

  6. 実行python setup.py install --skip-buildインストールする

それはそれをする必要があります。

私は実際、彼らがsslライブラリをアプリエンジンsdkまたはpythonインストーラーに追加することができなかったことに驚いています。人々はそれを使用していない可能性があります。

2
BanditoBunny

人々の生活を楽にするために、すべての指示を1か所にまとめました。 http://waqasshabbir.tumblr.com/post/18010535789/ssl-module-for-python-2-5-installation-windows-only

1
user739721

TDM-GCC 4.6.1が2011年9月にリリースされて以来、TDM-GCCインストーラーは、tdm-gcc-4.5.2.exeが使用されている場合でも、最新のGCCバージョン(4.6.1)をダウンロードします。 GCC 4.6.1は、GCCビルドエラー「エラー:認識されないコマンドラインオプション '-mno-cygwin'」を引き起こします。これは、-mno-cygwinがGCC4.6.1で非推奨になるためです。 python 2.5に対してsslパッケージをコンパイルするには、GCCバージョン4.5.2を使用する必要があります。

TDM-GCCをインストールした後、@ BanditoBunnyの指示から追加の手順を実行する必要があります。

3.1 gcc-4.5.2-tdm-1-core.Zipを http://sourceforge.net/projects/tdm-gcc/files/TDM-GCC%204.5%20series/4.5.2-tdm-からダウンロード1%20SJLJ/gcc-4.5.2-tdm-1-core.Zip/download 。ファイルをMinGW32フォルダーに解凍します。
3.2 SSLフォルダーに移動し、そこでコマンドプロンプトを開きます。 GCCのバージョン(gcc --versionを使用)をチェックして、バージョン4.5.2を使用していることを確認します。次に、ステップ4に進みます。

1
DeenSeth