Indice
Python 2.7 Windows: Unable to find vcvarsall.bat
Installare i pacchetti di python 2.7 sta diventando difficile a causa dell'errore riportato nel titolo.
Python 2.7 per windows è compilato con Visual Studio 2008 il cui runtime non è più incluso nei sistemi operativi (ora c'è il 2010).
Quindi sarà necessario manomettere un po' il sistema …
Redist di Visual Stusio 2010
Se già il runtime di Visual Studio 2010 non è installato sarà necessario scaricarlo da qui avendo cura di selezionare il linguaggio giusto (e la piattaforma) per il sistema operativo in uso.
Una volta scaricato installare il pacchetto.
Modificare le librerie Python
Editare il file C:\Python27\Lib\distutils\msvc9compiler.py nel modo seguente:
Modificare la riga 243 da
toolskey = "VS%0.f0COMNTOOLS" % version
a
toolskey = "VS100COMNTOOLS"
Per evitare i possibili errori del manifest è possibile (ma non obbligatorio) aggiungere dopo la linea 647 questa riga di codice
ld_args.append('/MANIFEST')
Salvare le modifiche. Python ricompilerà il modulo al successivo utilizzo
Variabili d'ambiente
Il modulo precedentemente modificato fa in modo di cercare la variabile d'ambiente VS100COMNTOOLS che deve essere definita.
Aggiungere tale variabile alle variabili d'ambiente e testare con
set VS100COMNTOOLS=C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Tools\
per Windows 7 o superiori o
set VS100COMNTOOLS=C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools\
per Windows Vista
Modifiche ai Files di Visual Studio
Nella cartella C:\Program Files\Microsoft Visual Studio 10.0\Common7\Tools dovrebbe trovarsi il file vcvarsall.bat.
Se non c'è, rinominare vcvars32.bat in vcvarsall.bat
Se necessario modificare la seguente riga da
@call "%VS100COMNTOOLS%VCVarsQueryRegistry.bat" 32bit No64bit
a
@call "%VS100COMNTOOLS%VCVarsQueryRegistry.bat" 32bit 64bit
Fatto!
A questo punto python non dovrebbe più dare errore quando si cerca di installare un pacchetto nuovo.

