2011-01-13 5 views
27

Ho già installato Microsoft Visual Studio 2008. Ho scaricato il file zip Python for Windows extensions e ho estratto il contenuto nella mia cartella Python27. C'è ora una sottocartella chiamata pywin32-214. (È il 32 parte un problema Sono su un sistema a 64 bit?.) Ecco una trascrizione dalla riga di comando:Errore di valore nel tentativo di installare estensioni Python per 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'] 

non so cosa fare di questo. Aiuto?

risposta

17

Se si dispone di un impianto di Python a 64 bit:

Installare "Microsoft Visual Studio 2008 Professional Edition" con la "X64 Compiler e strumenti" opzione abilitata.

In alternativa, scaricare pywin32-214.win-amd64-py2.7.exe da http://sourceforge.net/projects/pywin32/files/pywin32/Build%20214/

+0

Si dice che non ho una directory Python27, cosa che faccio ... pensi forse è incompatibile con Python 2.7.1? – user460847

+0

Quindi probabilmente hai un'installazione di Python a 32 bit e devi scaricare pywin32-214.win32-py2.7.exe – cgohlke

+0

Provato che ... è riuscito a trovare la directory ma la barra di installazione è rimasta completamente vuota per 10 minuti. Vado a vedere se riesco a trovare un'installazione Python a 64 bit e poi a provare di nuovo l'exe originale. – user460847

0

Python per le estensioni di Windows è supportato solo su

32-bit MS Windows (95/98), a 32 bit di Windows MS (NT/2000/XP), tutto a 32 bit di Windows MS (95/98/NT/2000/XP), Win2K, WinXP , WinCE

Tratto da the sourceforge project page. Sembra che tu possa essere sfortunato!

MODIFICA: Tuttavia ... la lettura di this sembra implicare il contrario.

20

Un'altra possibile causa di questo problema ad apparire è che avete appena installato Visual Studio e il prompt dei comandi che si sta utilizzando era in giro dal tempo prima dell' l'installazione.

Questo perché installazione MSVC imposta alcune variabili ambiente e una di queste variabili (VS90COMNTOOLS) deve essere impostato per vcvarsall.bat per eseguire correttamente. Ma ogni programma in esecuzione in Windows detiene la propria copia locale delle variabili di ambiente che viene ereditata (copiata) dal processo padre all'avvio del figlio. Quindi, dopo l'avvio del bambino, non riceve le modifiche apportate agli eventi di sistema. E l'unico modo per ottenere variabili di ambiente aggiornate è generare una nuova istanza di un processo figlio con un genitore che ha aggiornato la versione di envvars.

+0

Esattamente il mio problema dopo aver installato VC 2008 –

+0

Questo è geniale! – wlnirvana

+2

Ti amo, ho i miei bambini. – Rob

8

Come affermato, sta tentando di utilizzare un compilatore a 32 bit per python a 64 bit. Sono stato in grado di costruire con successo da:

  1. Trovare vcvarsx86_amd64.bat a C:\Program Files (x86)\Microsoft Visual Studio 12.0\VC\bin\x86_amd64 (dipende dalla configurazione)
  2. Aprire un cmd prompt dei
  3. Run SET VS90COMNTOOLS=%VS120COMNTOOLS% (dipende dalla configurazione, vedere https://stackoverflow.com/a/10558328/2362877)
  4. Run vcvarsx86_amd64.bat
  5. Poi pip install <package>
+0

non ha funzionato per me –

+0

questo ha funzionato per me per eseguire 'pip install usaddress', ma senza eseguire il 'SET VS90COMNTOOLS =% VS120COMNTOOLS%' ho avuto comunque VS90 pointint al mio VS100 installazione VS2010 espresso ho installato VS2012. –

+0

Ciò consentirà di creare, ma causerà problemi se qualcuno che non ha installato le librerie VS2012 tenta di eseguire l'estensione. Sarebbe meglio installare VS2008 con il compilatore a 64 bit opzionale e utilizzarlo: http://stackoverflow.com/questions/6692402/visual-studio-2008-for-windows-7-64-bit-for-creating- 64-bit-binari – mmitchell

0

Ho provato tutte le altre risposte e molto altro. Terminato l'installazione di python a 32 bit, che ha risolto subito il problema.

Se questa è un'opzione, è molto probabilmente la soluzione più semplice.

1

Se si è riparato su Python 2.7 a 64 bit (come me) e troppo economico per acquistare VS2008 Professional, è anche possibile scaricare VS2008 Express e installare Windows 7 SDK per ottenere gratuitamente un compilatore a 64 bit compatibile. Dopo di che, eseguire lo script di Windows 7 SDK SetEnv.Cmd e poi il setup.py:

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

Il SetEnv.Cmd dovrebbe istituire tutte le variabili di ambiente necessari per costruire. Quando viene eseguito, dovrebbe esserci un messaggio che dice "Targeting per Windows 7 x64 Debug". È inoltre possibile utilizzare questo comando per la compilazione in modalità di rilascio:

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

Nessuna di queste risposte ha lavorato per me, ma ho trovato la soluzione sul issue tracker:

  1. Apri cmd.
  2. cd "C: \ Program Files (x86) \ Microsoft Visual Studio 9.0 \ VC \ bin"
  3. Tipo Vcvars32.bat o vcvars64.bat
  4. Nello stesso chiusura rapida e -senza: cd torna alla Modulo Python che stai cercando di installare.
  5. Ora il codice dovrebbe essere installato.

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

Problemi correlati