web-dev-qa-db-ja.com

Python PIPには、Windows 7での64ビットインストール用のMS Visual Studio 2010 Expressのパスに問題があります

python 3.3、64ビットバージョンのクリーンインストールでvirtualenvを作成していました。(注:WinPythonを含むコンピューターにpythonしかし、私が取り組んでいるいくつかのプロジェクトのためにきれいで小さな仮想環境を設定したいです。WinPythonバージョンは正常に動作します。)pipを使用してパッケージをインストールしようとすると、エラーメッセージが表示されました最終的に、エラーメッセージの最後の行は次のとおりです。

_File "c:\python33-b\Lib\distutils\msvc9compiler.py", line 287, in query_vcvarsall raise ValueError(str(list(result.keys())))

ValueError: ['path']
_

Msvc9compiler.pyの関数query_vcvarsallの結果を調査しました。この関数は、コンピューター上のMS Visual Studio 10 Expressからvcvarsallのパスを探していることがわかりました。 4つのコンポーネントを探しています:INCLUDE =、PATH =、LIB =、およびLIBPATH =。これらはMS VS 2010に固有のものでした。私のインストールでは、この関数に「AMD64」の引数を送信しました。 PATH =ステートメント以外は見つかりませんでしたが、vcvarsall.batファイルは見つかりました。この関数をだまして「x86」引数を使用すると、4つのステートメントがすべて検出され、正常に実行されるように見えました。

私はウェブ上でこれを調査するのにいくらか時間を費やしました。 MS VS Express 2010はデフォルトで32ビットとしてインストールされることがわかりました。 64ビットとして実行するように設定する必要があります(つまり、上記の必要なステートメントが設定されます)。明らかにバグがあり、このバージョンでは64ビットツールがインストールされていなかったようです。そこで、64ビットツールをインストールするためにMS SDKをインストールしました。次に、これに対する修正があったことを発見し、それをインストールしました(以下のリンクにリストされています)。

64ビットVSのパスを作成するために概説されたいくつかの方法がありました。 1つは、MS VSのコマンドラインで_vcvarsall AMD64_を実行することでした。これにより、ツールがコンピューターにインストールされていないというメッセージが表示されました。これらのツールはC:\Program Files (x86)\Microsoft Visual Studio 10.0\VC\bin\AMD64ディレクトリーに常駐していました。明らかに探しているファイルはvcvars64.bat(または同様のもの)です。ディレクトリはありますが、バッチファイルはありません。 (x86_AMD64メソッドを使用することが推奨されていましたが、同じ問題がすべてあります。)

2番目の推奨事項は、SDKコマンドラインから_setenv /x64_を実行することでした。私はそれを実行しましたが、正しく実行されているように見えました。ただし、pipでパッケージをインストールしようとすると、同じエラーメッセージが表示されました。

私の質問は、最終的にピップをスムーズに実行する方法ですか?言うまでもなく、はい、各インストール後にpipを再度テストする前に再起動し、これを修正しようとしました。

ここに私がここまで行くのを助けたいくつかのサイトがあります:

1) Visual Studio 2010からの64ビットコマンドプロンプトの起動

2)MS VS 2010コマンドラインビルドのパスおよび環境変数の設定:
http://msdn.Microsoft.com/en-us/library/f2ccy3wt.aspx

3)VS2010 Expressおよびx64コンパイラの欠落:
https://social.msdn.Microsoft.com/Forums/en-US/e0ef4613-d90f-4eec-90db-41339ed31367/vs2010-express-and-missing-x64-compiler?forum = Vsexpressinstall

4)修正:Windows SDK v7.1がインストールされている場合、Visual Studio 2010 ProfessionalまたはVisual Studio 2010 ExpressをVisual Studio 2010 SP1にアップグレードすると、Visual C++コンパイラーが削除されます。
http://support.Microsoft.com/kb/2519277

5)msvc9compiler.py:VC Express: http://bugs.python.org/issue7511 でコンパイルしようとしたときのValueError

18

最終的に、pipを実行することができました。一言で言えば(および上記の情報から冗長)、ここにpython 3.3の64ビットパッケージをインストールするために行ったことを示します。

1)Microsoft Visual C++ 2010 Expressのインストール ここからダウンロード http://www.visualstudio.com/downloads/download-visual-studio-vs

2)Microsoft SDK 7.1(Windows 7)をインストールしました( http://www.Microsoft.com/en-us/download/details.aspx?id=8279

3)SDKで64ビットツールを構築/有効化しました。 [スタート]メニューに移動し、Microsoft Windows SDK v7.1フォルダーで[Windows SDK 7.1コマンドプロンプト]を選択します。シェルが表示されます。次のコマンドを入力しますsetenv /x64

4)修正プログラムをインストールしました(最終的に必要かどうかわかりません)( http://support.Microsoft.com/kb/2519277

5)C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin\AMD64の下に新しいvcvars64.batファイルを作成しました。その新しいバッチファイル内には、CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64。これは、distutilsがSDKのC++コンパイラーを使用することを強制するものだと想定しています。この後、Pipは正しくインストールされました。私が理解しているように、C++コンパイラはpython 3.3をコンパイルするために使用したものと同じでなければなりません。私の研究から、インストールされたSDKは同じコンパイラですが、 originalvcvars64.batファイルが存在すること。この情報は、以下から得られました。 http://www.w7forums.com/threads/vcvarsall -bat-no-64bit-support-vcvars64-bat-missing.6606 / このソリューションで今後問題が発生する場合は修正してください。

22

私にとっては、手順1、2、5を実行するだけで十分で、手順4は必要ありません。

1)Microsoft Visual C++ 2010をインストールします(私の場合はExpressではありません)

2)Microsoft SDK 7.1(Windows 7)をインストールします

3と4をスキップします。

5)行CALL "C:\ Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnvを含むC:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin\AMD64\vcvars64.batを作成します。 cmd "/ x64

完了:pip3 install numpy works。

5
jayesef

5番目のステップはうまくいきませんでした(VC++ 10 Expressを使用しています)。 setenv/x64と入力した後、SDKコマンドプロンプトでpip installを実行することで、pipが機能するようになりました(通常のcmd.exeプロンプトでpipを実行しても機能しませんでした)。

1
Hao

以下は、Windows 10 x64およびx64ベースのプロセッサでpython 3.4.4の64ビットパッケージをインストールするために行ったものです。

0)可能なすべてのものにプリコンパイルされたAMD64 whlを使用し、エラーをスローしたものには次の方法を使用します

1a)Microsoft Visual C++ 2010 Expressのインストール

1b)コントロールパネルから再配布可能なMicrosoft Visual C++ 2010 Expressをアンインストールしました

2)Microsoft SDK 7.1(Windows 10)をインストールしました

3)修正プログラムをインストールしました( http://support.Microsoft.com/kb/2519277

4)C:\ Program Files(x86)\ Microsoft Visual Studio 10.0\VC\bin\AMD64の下に行のみを含む新しいvcvars64.batファイルを作成しました

CALL "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.cmd" /x64

5)入力後にSDKコマンドプロンプトでpipインストールを実行する

setenv /x64

そして

set DISTUTILS_USE_SDK=1
0
user27630