2011-01-13 14 views
27

Ya tengo instalado Microsoft Visual Studio 2008. Descargué el archivo comprimido Python for Windows extensions y extraje el contenido en mi carpeta Python27. Ahora hay una subcarpeta llamada pywin32-214. (Es la 32 parte un problema que estoy en un sistema de 64 bits?.) Aquí hay una transcripción de la línea de comandos:Error de valor al intentar instalar las extensiones de Python para Windows

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'] 

no sé qué hacer con esto. ¿Ayuda?

Respuesta

17

Si tiene una instalación de Python 64 bits:

instalar "Microsoft Visual Studio 2008 Professional Edition" con la "X64 Compilador y herramientas" habilitada.

Alternativamente, descargar pywin32-214.win amd64 py2.7.exe de http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/

+0

Se dice que no tengo un directorio python27, que lo haga ... qué te parece tal vez es incompatible con Python 2.7.1? – user460847

+0

Entonces es probable que tenga una instalación de Python de 32 bits y necesite descargar pywin32-214.win32-py2.7.exe – cgohlke

+0

Probé que ... logró encontrar el directorio pero luego la barra de instalación permaneció completamente vacía durante 10 minutos. Voy a ver si puedo encontrar una instalación de Python de 64 bits y luego probar el .exe original nuevamente. – user460847

0

Python para las extensiones de Windows sólo se admite en

32-bits de MS Windows (95/98), de 32 bits MS de Windows (NT/2000/XP), todos de 32 bits de Windows MS (95/98/NT/2000/XP), Win2K, WinXP, Windows CE

Tomado de the sourceforge project page. ¡Parece que no estás de suerte!

EDITAR: Sin embargo ... leer this parece implicar lo contrario.

20

Otra posible razón de este problema que aparece es que acaba de instalar Visual y el símbolo del sistema que utiliza Studio había estado dando vueltas desde el momento antes de la instalación.

Esto se debe a MSVC instalador fija pocas variables de entorno y una de estas variables (VS90COMNTOOLS) tiene que ser establecido para vcvarsall.bat para ejecutar correctamente. Pero cada programa en ejecución en Windows tiene su propia copia local de las variables de entorno que se heredan (copian) del proceso principal al iniciarse. Por lo tanto, después de que el niño ha comenzado, no recibe alteraciones realizadas en los envvars de nivel de sistema. Y la única forma de obtener variables de entorno actualizadas es a través del engendramiento de una nueva instancia de un proceso hijo con el padre que tiene una versión actualizada de envvars.

+0

Exactamente mi problema después de haber instalado VC 2008 –

+0

¡Esto es brillante! – wlnirvana

+2

Te amo, tengo mis bebés. – Rob

8

Como dije, está tratando de usar un compilador de 32 bits para Python de 64 bits. Yo era capaz de construir con éxito por:

  1. Encontrar vcvarsx86_amd64.bat en C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64 (depende de la configuración)
  2. Abra un cmd pronta
  3. Run SET VS90COMNTOOLS=%VS120COMNTOOLS% (depende de la configuración, consulte https://stackoverflow.com/a/10558328/2362877)
  4. Run vcvarsx86_amd64.bat
  5. Entonces pip install <package>
+0

no funcionó para mí –

+0

esto funcionó para que ejecutara 'pip install usaddress' pero sin ejecutar el 'SET VS90COMNTOOLS =% VS120COMNTOOLS%' Sin embargo, tenía VS90 apuntando a mi VS100 install (VS2010 express) haveter que había instalado VS2012. –

+0

Esto le permitirá compilar, pero causará problemas si alguien que no tiene las bibliotecas VS2012 instaladas intenta ejecutar la extensión. Sería mejor instalar VS2008 con el compilador de 64 bits opcional y usar eso: http://stackoverflow.com/questions/6692402/visual-studio-2008-for-windows-7-64-bit-for-creating- Binarios de 64 bits – mmitchell

0

Intenté todas las otras respuestas y mucho más. Terminó instalando python de 32 bits, que solucionó el problema de inmediato.

Si esta es una opción, es muy probable que sea la solución más fácil.

1

Si está reparado en Python 2.7 de 64 bits (como yo) y demasiado barato para comprar VS2008 Professional, también puede descargar VS2008 Express e instalar el SDK de Windows 7 para obtener un compilador compatible de 64 bits de forma gratuita. Después de eso, ejecute el script SDK SetEnv.Cmd Windows 7 y luego el setup.py:

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

El SetEnv.Cmd debe configurar todas las variables de entorno que necesita para construir. Cuando se ejecuta, debe haber un mensaje que dice "Dirigir a Windows 7 x64 Debug". También puede utilizar este comando para compilar en modo de lanzamiento:

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

Ninguna de estas respuestas trabajó para mí, pero he encontrado la solución en el seguimiento de incidencias:

  1. Abrir cmd.
  2. cd "C: \ Archivos de programa (x86) \ Microsoft Visual Studio 9.0 \ VC \ bin"
  3. Tipo vcvars32.bat o vcvars64.bat
  4. En el mismo cierre rápido y -sin: cd nuevo a la Módulo de Python que está tratando de instalar.
  5. El código debería instalarse ahora.

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

Cuestiones relacionadas