Windows 8でPython 2.7でpip install zipline
を使用すると、エラーが発生します。
Downloading/unpacking six (from python-dateutil==2.1->delorean->zipline[all])
Running setup.py Egg_info for package six
Installing collected packages: blist, pytz, requests, python-dateutil, six
Running setup.py install for blist
building '_blist' extension
error: Unable to find vcvarsall.bat
Complete output from command C:\Python27\python.exe -c "import setuptools;__
file__='c:\\users\\ThatsMe\\appdata\\local\\temp\\pip-build-ThatsMe\\blist\\setup.py';ex
ec(compile(open(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" inst
all --record c:\users\ThatsMe\appdata\local\temp\pip-xvoky2-record\install-record.tx
t --single-version-externally-managed:
running install
running build
running build_py
running build_ext
building '_blist' extension
error: Unable to find vcvarsall.bat
質問:エラーはどのように解決できますか? pip install zipline[all]
を実行しても同じエラーが発生します...
代わりにol 'good easy_install zipline
を使用できます。
easy_install
はpipではありませんが、その優れた側面の1つは、バイナリパッケージもダウンロードおよびインストールできることです。これにより、VC++の準備が必要になります。もちろんこれは、バイナリがPythonバージョン用に準備されているという前提に依存しています。
更新:
はい、Pipはバイナリをインストールできるようになりました!
新しいバイナリPythonアーカイブ形式( wheel )があり、これは「eggs」を置き換えることになっています。ホイールは既にpip
でサポートされています。これは、誰かがあなたのプラットフォーム用のホイールを構築してPyPIにアップロードするとすぐに、コンパイルせずにzipline
でpip
をインストールできることを意味します。
ここでの問題は$python_install_prefix/Lib/distutils/msvc9compiler.py
の行292(ここでPython 3.4.3を使用)であり、次のように書かれています:
VERSION = get_build_version()
これは、pythonがビルドされたMSVCバージョンのみをチェックします。この行を実際のVisual Studioバージョンに置き換えるだけです。 12.0
for MSVC2013
VERSION = 12.0
問題を修正します。
更新:このバージョンがハードコーディングされているのには正当な理由があることが判明しました。 MSVC Cランタイムは、メジャーバージョン間で互換性がある必要はありません。したがって、異なるバージョンのVSを使用すると、ランタイムの問題が発生する可能性があります。したがって、この問題が解決されるまで、VS 2008(Python 2.6から3.2まで)およびVS2010(Python 3.3以降)を使用することをお勧めします。
バイナリ互換性はVS 2015( こちらを参照 )とともにPython 3.5とともに提供されます。
Python 2.7ユーザー向けに、Microsoftは特別な Microsoft Visual C++ Compiler for Python 2.7 をリリースしました。これはVS 2008全体をインストールせずに使用できます。
Python 2.7でこのエラーが発生している場合、スタンドアロンダウンロードとして Microsoft Visual C++ Compiler for Python 2.7 を取得できます。
3.3以降を使用している場合は、Visual Studio 2010 Expressをインストールする必要があります。ここから無料で入手できます。 https://www.visualstudio.com/downloads/download-visual-studio-vs#d-2010-エクスプレス
3.3以降で、pythonの64ビットバージョンを使用している場合は、64ビットコンパイラを同梱するMicrosoft SDK 7.1をインストールし、こちらの指示に従う必要があります Python PIPには、 Windows 7での64ビットインストール用のMS Visual Studio 2010 Express
まず、システムでvcvarsall.batファイルを探す必要があります。
存在しない場合は、 Microsoft Visual C++ Compiler for Python 2.7 をインストールすることをお勧めします。これにより、すべてのユーザーにインストールした場合、「C:\ Program Files(x86)\ Common Files\Microsoft\Visual C++ for Python\9.0」にvcvarsall.batが作成されます。
問題は、C:/Python27/Lib/distutils/msvc9compiler.pyモジュールの関数find_vcvarsall(version)にあります。 、vcvarsall.batファイルを探しています。
関数呼び出しに続いて、vcvarsall.batファイルへのパスを含むレジストリ内のエントリを探していることがわかります。この関数は、上記のインストールがそれを配置した場所とは異なる他のディレクトリを探しているため、それを見つけることはありません。私の場合、レジストリは存在しませんでした。
この問題を解決する最も簡単な方法は、vcvarsall.batファイルのパスを手動で返すことです。そのためには、msvc9compiler.pyファイルの関数find_vcvarsall(version)をvcvarsall.batへの絶対パスで変更しますこのようなファイル:
def find_vcvarsall(version):
return r"C:\Program Files (x86)\Common Files\Microsoft\Visual C++ for Python\9.0\vcvarsall.bat"
このソリューションは私のために働いた。
すでにvcvarsall.batファイルがある場合は、レジストリにキーproductdirがあるかどうかを確認する必要があります。
(HKEY_USERS、HKEY_CURRENT_USERS、HKEY_LOCAL_MACHINEまたはHKEY_CLASSES_ROOT)\ Software\Wow6432Node\Microsoft\VisualStudio\version\Setup\VC
Whereversion = msvc9compiler.get_build_version()
キーがない場合は、次を実行します。
def find_vcvarsall(version):
return <path>\vcvarsall.bat
find_vcvarsall(version)関数で始まる正確な動作チェックmsvc9compiler.pyモジュールを理解するため。
マシンにC++コンパイラがインストールされていないという理由だけで、次のことを確認してください。
これからMicrosoft Visual C++ 2008をダウンロードします ページ 。それはとにかく一般的に便利なページなので、おそらくそれをブックマークする必要があります。 Python 3.3+の場合、 MS Visual C++ 201 を使用します。それをインストールします。
Windowsエクスプローラー(ファイルブラウザー)を開き、「vcvarsall.bat」の場所を検索して、クリップボードに切り取ります。
windowsスタートキーからregeditを実行します。管理者権限が必要になります。
説明に従って、レジストリエントリをHKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir(64ビットWindows)またはHKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir(32ビット)に追加します- ここ 。
Hint:0.9は、現在登録されているVisual Studioのバージョンです。VS2013を実行している場合、パスHKEY_LOCAL_MACHINE\Softwareを見つける必要があります。\Wow6432Node\Microsoft\VisualStudio\12.0 ....
Windowsのスタートキーで「cmd」と入力して、コマンドシェルを取得します。必要な場合は、仮想環境に移動してactivate.batを実行します。
pip installまたはインストールに使用するもの。
パスにVisual Studioのbin dirが必要です。 PipインストールはいくつかのCコードをコンパイルしようとしています。
このvcvarsall.batの調査にも何時間も費やしました。 SOに関するほとんどの回答は、Python 2.7および/またはシステムパスの変更による回避策の作成に焦点を当てています。誰も私のために働いた。このソリューションはPython 3.5ですぐに使用でき、それを行うための「正しい」方法です。
このリンクを参照してください-Pythonの異なるバージョンに使用するWindowsコンパイラについて説明します: https://wiki.python.org/moin/WindowsCompilers#Microsoft_Visual_C.2B-.2B-_14.0_standalone:_Visual_C.2B -.2B-_Build_Tools_2015_.28x86.2C_x64.2C_ARM.29
Python 3.5の場合、これをダウンロードします。 https://www.Microsoft.com/en-us/download/details.aspx?id=4998
私にとっては、C:\ Program Files(x86)\ Microsoft Visual C++ Build Tools\Visual C++ x64 Native Build Toolsコマンドプロンプトを実行して動作させる必要がありました。そのコマンドプロンプトから、「pip install Django_compressor」を実行しました。これは、問題を引き起こしている特定のパッケージであり、完全に機能しました。
これが誰かの時間を節約することを願っています!
Pythonでグラフを操作するためにmatplotlibをインストールしようとしている場合。このリンクを試してください。 https://github.com/jbmohler/matplotlib-winbuild 。これは、MS Windowsプラットフォームのソースからmatplotlibをビルドするためのスクリプトのセットです。
Pythonでmatplotlibをビルドしてインストールするには、次のようにします。
git clone https://github.com/matplotlib/matplotlib
git clone https://github.com/jbmohler/matplotlib-winbuild
$ python matplotlib-winbuild\buildall.py
ビルドスクリプトはPythonバージョンと32/64ビットを自動的に検出します。
「msoliman」のヒントをありがとう
たとえば、VS2012とVS2013があり、システムレジストリにそのようなKEYはありません。
解決:
ファイルの編集: "[Python_install_loc]/Lib/distutils/msvc9compiler.py"
224行目の変更:
productdir = Reg.get_value(r"%s\Setup\VC" % vsbase,
"productdir")
に:
productdir = "C:\Program Files (x86)\Microsoft Visual Studio [your_vs_version(11/12...)]\VC"
そしてそれは動作するはずです
これは3.4で解決する答えではないかもしれませんが、3.4でこれを修正するために非常にさまざまなことを試してみました。私の場合、仕事の要求)。
まったく同じセットアップで、インストール問題はPython 3.4でのみ発生することがわかりました。 2.7に変更すると、すべての問題が解決したように見えました。
ただし、セキュリティ設定はかなり熱心なので、ホームバージョン(3.4でも)で同じことを試して、さらに喜びがあるかどうかを確認します。私の傾向は、私のVSバージョンが何らかの形で制限されており、上記の答えが役立つはずだということです。今夜もっと何かを見つけたら、さらに詳細を追加します。
これは私の最初の返信であり、私が恐れている最も技術的なものではありません!