Как указать easy_install на vcvarsall.bat?

У меня уже установлен MSVС++ 2010 Express, а файл vcvarsall.bat находится в C:\Program Files\Microsoft Visual Studio 10.0\VC, который находится в моей системе PATH. Когда я запускаю easy_install, он не может найти vcvarsall.bat.

Есть ли что-то, что мне нужно установить в файле distutils.cfg, чтобы указать его на мою установку MSVС++?

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

Я все еще хотел бы знать, где установить эту ссылку на vsvarsall.bat...

Ну, как писал Мартино, вы должны иметь либо Visual Studio 2008, либо Visual С++ Express. Сказав, что я понимаю, вы хотели бы знать, где Python ищет этот пакетный файл. Вы можете увидеть это, посмотрев definition функции find_vcvarsall в стандартном модуле distutils/msvc9compiler.py. 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.

См. также мой другой ответ, в котором объясняется, почему вы не можете использовать MSVС++ 2010 для создания расширений для Python 2.6

EDIT: Файлы VС++ 2008 теперь упакованы в установщик из MS, который можно загрузить здесь. После установки vcvarsall.bat будет находиться в C:\Users\username\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0