如何将easy_install指向vcvarsall.bat?

我已经安装了MSVC ++ 2010 Express,而且我的vcvarsall.bat文件位于C:\Program Files\Microsoft Visual Studio 10.0\VC ,它位于我的系统PATH中。 当我运行easy_install ,找不到vcvarsall.bat。

有什么我需要在我的distutils.cfg文件中设置指向我的MSVC ++安装?

 G:\>easy_install hg-git install_dir C:\Python26\Lib\site-packages\ Searching for hg-git Best match: hg-git 0.2.6 Processing hg_git-0.2.6-py2.6.egg hg-git 0.2.6 is already the active version in easy-install.pth Using c:\python26\lib\site-packages\hg_git-0.2.6-py2.6.egg Processing dependencies for hg-git Searching for dulwich>=0.6.0 Reading http://pypi.python.org/simple/dulwich/ Reading http://samba.org/~jelmer/dulwich Reading http://launchpad.net/dulwich Best match: dulwich 0.7.1 Downloading http://www.samba.org/~jelmer/dulwich/dulwich-0.7.1.tar.gz Processing dulwich-0.7.1.tar.gz Running dulwich-0.7.1\setup.py -q bdist_egg --dist-dir c:\docume~1\mlin\locals~1 \temp\easy_install-fhraep\dulwich-0.7.1\egg-dist-tmp-qozily error: Setup script exited with error: Unable to find vcvarsall.bat 

我仍然想知道在哪里设置对vsvarsall.bat的引用…

那么,正如martineau写的,你必须安装Visual Studio 2008或Visual C ++ Express。 话虽如此,我明白你想知道Python在哪里查找这个batch file。 你可以通过在distutils / msvc9compiler.py标准模块中查看find_vcvarsall函数的definition来看到。 Python依次检查是否有键保存在registry中的文件夹

  • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir
  • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VCExpress\9.0\Setup\VC\ProductDir

(对于64位Windows)或者

  • HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir
  • HKEY_LOCAL_MACHINE\Software\Microsoft\VCExpress\9.0\Setup\VC\ProductDir

(对于32位Windows)存在,如果是这样的话,它将把这个文件夹视为包含vcvarsall.bat文件的文件夹。 如果这些文件夹都不存在,Python将检查是否存在VS90COMNTOOLS环境variables。 如果此variables退出,则将该variables的两个高于此值的文件夹视为包含vcvarsall.bat文件的文件夹。

另请参阅我的其他答案,它解释了为什么您不能使用MSVC ++ 2010来构buildPython 2.6的扩展

编辑:VC ++ 2008文件现在打包在MS的安装程序,可以在这里下载。 一旦安装vcvarsall.bat将在C:\Users\username\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0