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.

Referenze