Как мне указать 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 на своем компьютере.