Как мне указать easy_install на vcvarsall.bat? - PullRequest
45 голосов
/ 01 июля 2011

У меня уже установлен 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 Ответ

57 голосов
/ 03 января 2012

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

Ну, как писал Мартино, у вас должна быть установлена ​​либо Visual Studio 2008, либо Visual C ++ 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 файл.

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

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

...