46 votes

Comment faire pointer easy_install vers vcvarsall.bat ?

J'ai déjà installé MSVC++ 2010 Express, et mon fichier vcvarsall.bat est à l'adresse suivante C:\Program Files\Microsoft Visual Studio 10.0\VC qui se trouve dans le PATH de mon système. Lorsque j'exécute easy_install il ne trouve pas vcvarsall.bat.

Y a-t-il quelque chose que je dois définir dans mon fichier distutils.cfg pour le faire pointer vers mon installation 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

57voto

Piotr Dobrogost Points 14412

J'aimerais quand même savoir où placer cette référence à vsvarsall.bat...

Eh bien, comme martineau l'a écrit, vous devez avoir installé Visual Studio 2008 ou Visual C++ Express. Cela dit, je comprends que vous souhaitiez savoir où Python cherche ce fichier batch. Vous pouvez le voir en regardant definition de find_vcvarsall dans le module standard distutils/msvc9compiler.py. Python vérifie à son tour si l'un des dossiers enregistrés dans le registre sous les clés

  • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir
  • HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\VCExpress\9.0\Setup\VC\ProductDir

(pour Windows 64 bits) ou

  • HKEY_LOCAL_MACHINE\Software\Microsoft\VisualStudio\9.0\Setup\VC\ProductDir
  • HKEY_LOCAL_MACHINE\Software\Microsoft\VCExpress\9.0\Setup\VC\ProductDir

(pour Windows 32bit) existe et si c'est le cas, il traite ce dossier comme celui qui contient vcvarsall.bat dossier. Si aucun de ces dossiers n'existe, Python vérifie s'il y a une variable d'environnement VS90COMNTOOLS . Si cette variable sort, Python traite le dossier situé deux niveaux au dessus de la valeur de cette variable comme le dossier contenant vcvarsall.bat fichier.

Voir aussi mon autre réponse qui explique pourquoi vous ne pouvez pas utiliser MSVC++ 2010 pour construire des extensions pour Python 2.6

EDIT : Les fichiers VC++ 2008 sont maintenant emballés dans un installateur de MS qui peut être téléchargé. aquí . Une fois installé, vcvarsall.bat sera dans C:\Users\username\AppData\Local\Programs\Common\Microsoft\Visual C++ for Python\9.0

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X