Как мне указать 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

2 ответа

Решение

Я все еще хотел бы знать, где установить эту ссылку на 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

РЕДАКТИРОВАТЬ: VC++ 2008 файлы теперь упакованы в установщик от MS, который можно скачать здесь. После установки vcvarsall.bat будет в C:\Users\username\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0

Столкнулся с той же проблемой на python 3.9.12 (anaconda), я устанавливаю Visual C++ для Python в C:\Users\UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ для Python\9.0

и найдите msvc9compiler.py в

C:\Users\UserName\anaconda3\Lib\distutils показал
VS_BASE = r"Software\Microsoft\VisualStudio%0.1f"

как указать vcvarsall.bat на python?

(Я добавил системный PATH, но он вообще не работает.)C:\Users\UserName\AppData\Local\Programs\Common\Microsoft\Visual C++ для Python\9.0

Не могли бы вы указать, как добавить реестр для значения? Я не нашел HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir на своем компьютере.

Другие вопросы по тегам