Questo è stato chiesto e risposto alcune volte, ma come vedrete nessuna delle risposte precedenti funziona per me - Mi sento come se qualcosa fosse cambiato per rendere obsolete tutte le vecchie risposte. O per lo meno, sono in una sorta di edge case:python - Ottenere Pip per usare MinGW32 su Windows?
Su una scatola di Windows 7, ho installato MinGW32 e Python 2.7 (versione a 32 bit) (Ho anche provato questo con Python 2.6 e ottenuto gli stessi risultati).
La variabile di ambiente del percorso è impostata correttamente.
Ho modificato
cygwincompiler.py
per rimuovere i riferimenti a-mno-cygwin
. E ho inserito il filedistutils.cfg
corretto inC:\Python27\Lib\distutils
.Per essere chiari:
distutils.cfg
contiene[build] compiler=mingw32
su due righe.Ho anche (solo per sicurezza) mettere
pydistutils.cfg
nella mia directory%HOME%
. E inseriresetup.cfg
nella mia directory corrente quando si eseguepip
. Hanno lo stesso contenuto didistutils.cfg
.
So che questo è tutto il funzionamento a causa pip install cython
e pip install pycrypto
entrambi compilare correttamente.
Tuttavia, misteriosamente, alcuni pacchetti mi danno ancora l'errore unable to find vcvarsall.bat
. Due esempi sono: pyproj e numpy.
È come se a volte lo pip
sapesse usare il compilatore MinGW e talvolta no?
Inoltre, se utilizzo la shell MSYS fornita con MinGW, allora magicamente pip install numpy
ha esito positivo. Ma pip install pyproj
non riesce ancora con un unable to find vcvarsall.bat
.
Ho provato questo su più macchine tutte con gli stessi esatti risultati.
Qualcuno ha idea di cosa sta succedendo qui? Perché pip
sa usare mingw32 per compilare alcuni moduli c e non altri? Inoltre, perché lo pip install numpy
funziona all'interno della shell MSYS ma non all'interno della shell cmd?
BONUS: molte, più vecchie risposte suggeriscono l'installazione di Visual Studio 2008 come un modo per risolvere un errore vcvarsall.bat
. Ma a partire da maggio scorso, Microsoft non distribuirà più questo software. Qualcuno sa di un posto dove si può ancora scaricare VS2008? Chiedo perché è possibile che l'utilizzo di vcvarsall.bat
anziché MinGW risolva questo problema.
+1 Ho lo stesso identico problema: a volte pip è in grado di trovare mingw, a volte non può. – Sam
Non hai bisogno di tutto VS2008, hai solo bisogno di Windows SDK, che è ancora disponibile per il download. http://www.microsoft.com/en-us/download/details.aspx?id=3138 (probabilmente il link non invecchierà bene) –