如何将easy_install指向vcvarsall.bat?

时间:2011-07-01 18:17:04

标签: python distutils easy-install visual-studio-2010

我已经安装了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

1 个答案:

答案 0 :(得分:57)

  

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

好吧,正如martineau所写,你必须安装Visual Studio 2008或Visual C ++ Express。说完了,我知道你想知道Python在哪里查找这个批处理文件。您可以通过查看distutils / msvc9compiler.py标准模块中definitionfind_vcvarsall函数来查看此信息。如果任何文件夹保存在注册表中的

下,Python会依次检查
  • 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。如果此变量退出Python,则将此变量值的两个级别视为包含vcvarsall.bat文件的文件夹。

另请参阅我的other答案,该答案解释了为什么不能使用MSVC ++ 2010为Python 2.6构建扩展

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