2013-06-19 23 views
7

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 file distutils.cfg corretto in C:\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 inserire setup.cfg nella mia directory corrente quando si esegue pip. Hanno lo stesso contenuto di distutils.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.

+0

+1 Ho lo stesso identico problema: a volte pip è in grado di trovare mingw, a volte non può. – Sam

+0

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) –

risposta

1

Visual Studio Express 2008 http://download.microsoft.com/download/8/B/5/8B5804AD-4990-40D0-A6AA-CE894CBBB3DC/VS2008ExpressENUX1397868.iso

Oppure, se sei uno studente, è ancora possibile ottenere Visual Studio 2008 attraverso DreamSpark https://www.dreamspark.com/

IMHO mi consiglia di utilizzare Visual Studio 2008 perché le distribuzioni ufficiali di Python sono tutti compilati con Visual Studio ed è il compilatore di finestre "ufficiale" per cpython. http://mail.python.org/pipermail/python-list/2010-April/573606.html

FYI Python 33 è stato compilato con Visual Studio 2010.

Infine, si può solo installare i pacchetti da qui: http://www.lfd.uci.edu/~gohlke/pythonlibs/

0

ho lottato con questo problema per un po ', e ha scoperto che a volte sembra ignorare pip MSYS_HOME e non riesce a trovare pydistutils.cfg, nel qual caso la solo ricorso sembra essere copiare manualmente il pydistutils.cfg nel tuo virtualenv a destra prima di eseguire pip install.

Sarebbe bello se qualcuno potesse capire definitivamente perché a volte trova questo file e talvolta non lo fa. Le variabili ambientali sembrano eccessivamente pignoleria in MinGW.

Problemi correlati