2013年3月13日水曜日

pythonでvcvarsall.batエラーが出る。

python使っているとき、easy_installやpipでパッケージをインストールするときに
エラーがvcvarsall.batエラーが出てくる。

簡単な解決方法はVC2008を入れれば良いのだが、
今現在となるとかなり前のバージョンになるから最新版を使えるようにしたいところ。

ということで探してみたら、
distutils\msvc9compiler.pyのfind_vcvarsall関数で取得している事が分かった。
この中でやっていることはレジストリ情報からvsvarsall.batのありかを調べているので
現在使っているコンパイラでvcvarsall.batのあるパスを読み込むようにすればよい。

まずは、
from distutils.msvc9compiler import *
get_build_version()

これで現在のバージョンを調べる。

10.0なら

HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\10.0\Setup\VC\ProductDir

ここに文字列で

C:\Program Files (x86)\Microsoft Visual Studio 11.0\VC

を入れて、

find_vcvarsall()を実行してみて、
ちゃんと戻り値が得られている事をチェックする。

これで完了。

Androider