web-dev-qa-db-fra.com

Erreur de valeur lors de l'installation de Python pour les extensions Windows

J'ai déjà installé Microsoft Visual Studio 2008. J'ai téléchargé le fichier Zip extensions Python pour Windows et extrait le contenu dans mon dossier Python27. Il y a maintenant un sous-dossier appelé pywin32-214. (La partie 32 est-elle un problème? Je suis sur un système 64 bits.) Voici une transcription de la ligne de commande:

C:\Python27\pywin32-214>setup.py -q install
Building pywin32 2.7.214.0
Traceback (most recent call last):
  File "C:\Python27\pywin32-214\setup.py", line 2152, in <module>
    ('', ('pywin32.pth',)),
  File "C:\Python27\lib\distutils\core.py", line 152, in setup
    dist.run_commands()
  File "C:\Python27\lib\distutils\dist.py", line 953, in run_commands
    self.run_command(cmd)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python27\pywin32-214\setup.py", line 1251, in run
    install.run(self)
  File "C:\Python27\lib\distutils\command\install.py", line 563, in run
    self.run_command('build')
  File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python27\pywin32-214\setup.py", line 596, in run
    build.run(self)
  File "C:\Python27\lib\distutils\command\build.py", line 127, in run
    self.run_command(cmd_name)
  File "C:\Python27\lib\distutils\cmd.py", line 326, in run_command
    self.distribution.run_command(command)
  File "C:\Python27\lib\distutils\dist.py", line 972, in run_command
    cmd_obj.run()
  File "C:\Python27\lib\distutils\command\build_ext.py", line 340, in run
    self.build_extensions()
  File "C:\Python27\pywin32-214\setup.py", line 858, in build_extensions
    self.compiler.initialize()
  File "C:\Python27\lib\distutils\msvc9compiler.py", line 383, in initialize
    vc_env = query_vcvarsall(VERSION, plat_spec)
  File "C:\Python27\lib\distutils\msvc9compiler.py", line 299, in query_vcvarsal
l
    raise ValueError(str(list(result.keys())))
ValueError: [u'path']

Je ne sais pas quoi en penser. Aidez-moi?

27
user460847

Si vous avez une installation 64 bits Python installation:

Installez "Microsoft Visual Studio 2008 Professional Edition" avec l'option "X64 Compiler and Tools" activée.

Vous pouvez également télécharger pywin32-214.win-AMD64-py2.7.exe à partir de http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/

17
cgohlke

Une autre raison possible de l'apparition de ce problème est que vous venez d'installer Visual Studio et que l'invite de commande que vous utilisez était en attente depuis le moment avant l'installation.

Cela est dû au fait que le programme d'installation de MSVC définit peu de variables d'environnement et l'une de ces variables (VS90COMNTOOLS) doit être définie pour vcvarsall.bat pour s'exécuter correctement. Mais chaque programme en cours d'exécution dans Windows possède sa propre copie locale des variables d'environnement qui est héritée (copiée) du processus parent au démarrage de l'enfant. Ainsi, après le démarrage de l'enfant, il ne reçoit pas les modifications effectuées sur les envvars au niveau du système. Et le seul moyen d'obtenir des variables d'environnement mises à jour consiste à générer une nouvelle instance d'un processus enfant avec un parent qui a mis à jour la version d'envvars.

20
Ilya

Comme indiqué, il essaie d'utiliser un compilateur 32 bits pour le python 64 bits. J'ai pu construire avec succès en:

  1. Trouver vcvarsx86_AMD64.bat Dans C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_AMD64 (dépend de votre configuration)
  2. Ouvrir une invite cmd
  3. Exécutez SET VS90COMNTOOLS=%VS120COMNTOOLS% (Dépend de la configuration, voir https://stackoverflow.com/a/10558328/2362877 )
  4. Exécutez vcvarsx86_AMD64.bat
  5. Alors pip install <package>
9
frmdstryr

Aucune de ces réponses n'a fonctionné pour moi mais j'ai trouvé la solution sur le tracker de problème:

  1. Ouvrez cmd.
  2. cd "C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\bin"
  3. Tapez vcvars32.bat ou vcvars64.bat
  4. Dans la même invite et sans fermeture: retournez au module Python que vous essayez d'installer.
  5. Le code devrait maintenant s'installer.

Source: http://bugs.python.org/issue7511

8
Matthew Roberts

Si vous êtes fixé sur Python 2,7 64 bits (comme je le suis) et trop bon marché pour acheter VS2008 Professional, vous pouvez également télécharger VS2008 Express et installer le SDK Windows 7 pour obtenir un 64- compatible- compilateur de bits gratuitement. Après cela, exécutez le script SetEnv.Cmd du SDK Windows 7 puis le fichier setup.py:

> "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd"
> setup.py -q install

SetEnv.Cmd doit configurer toutes les variables d'environnement dont vous avez besoin pour la génération. Lors de son exécution, un message devrait indiquer "Ciblage du débogage Windows 7 x64". Vous pouvez également utiliser cette commande pour compiler en mode Release:

> "C:\Program Files\Microsoft SDKs\Windows\v7.1\Bin\SetEnv.Cmd" /Release
> setup.py -q install
1
mmitchell

J'ai essayé toutes les autres réponses et bien plus encore. J'ai fini par installer python 32 bits, ce qui a résolu le problème immédiatement.

Si c'est une option, c'est probablement la solution la plus simple.

0
Sanjii

Les extensions Python pour Windows ne sont prises en charge que sur

MS Windows 32 bits (95/98), MS Windows 32 bits (NT/2000/XP), Tous les MS Windows 32 bits (95/98/NT/2000/XP), Win2K, WinXP, WinCE

Tiré de la page du projet sourceforge . On dirait que vous n'avez peut-être pas de chance!

EDIT: Cependant ... lire this semble impliquer le contraire.

0
William