2010-07-21 21 views
56

Ho configurato MinGW e distutils così ora posso compilare le estensioni utilizzando questo comando: compilatore GCCCome utilizzare il compilatore gcc di MinGW quando si installa il pacchetto Python usando Pip?

setup.py install 

di MinGW sarà utilizzato e verrà installato il pacchetto. Per questo ho installato il file MinGW e created distutils.cfg con seguente contenuto:

[build] 
compiler = mingw32 

E 'fresco, ma ora mi piacerebbe utilizzare tutti i benefici pip. C'è un modo per usare lo stesso compilatore gcc di MinGW in pip? In modo che quando eseguo questo:

pip install <package name> 

pip utilizzerà il compilatore gcc di MinGW e compilerà il codice C se necessario?

Attualmente si verifica questo errore: Unable to find vcvarsall.bat. Sembra che pip non sappia che ho il compilatore gcc. Come posso configurare pip per usare il compilatore gcc?

+2

Un altro consiglio: assicurarsi che il file sia chiamato * distutils.cfg * e non * distutils.cfg.txt *. A volte a Windows piace aggiungere l'estensione * .txt * quando si crea un nuovo file di testo. – sffc

risposta

4

Forse non hai messo distutils.cfg nel posto giusto? Ho risolto lo stesso problema creando un file chiamato pydistutils.cfg in c: \ Documents and Settings \ myuser, con lo stesso contenuto del tuo. Ho fatto in questo modo e funziona. HTH

+0

Grazie per la proposta, anche se non faccio più questa roba :) – demalexx

+3

Ho inserito un file pydistutils.cfg con '[build] compiler = mingw32' nella mia directory $ HOME di msys (c: \ mingw \ msys \ 1.0 \ home \ ) e poi chiamo pip dalla mia shell msys. Funziona bene per me sia dentro che fuori da virtualenvs. @Paolo, ha senso che se si stesse usando una shell CMD, allora si metterebbe in% USERPROFILE% che è HOME per Windows. –

88
  • installare MinGW opzione C++ Compiler con controllati
  • aggiungere C:\MinGW\bin al PATH
  • in PYTHONPATH\Lib\distutils, creare un file distutils.cfg e aggiungere queste righe:

[build] compiler=mingw32

+2

La creazione del file distutils.cfg è ciò che ha risolto per me: stavo cercando di installare un pacchetto con pip e ho ottenuto l'errore "Impossibile trovare vcvarsall.bat" temuto. Grazie. –

+13

Ricorda che dovresti cambiarlo per il python nel tuo virtualenv se ne usi uno. – markijbema

+5

Grazie. Ancora noioso. Se solo Pip avesse un'opzione '--compiler' https: // github.com/pypa/pip/issues/18 si prega di pesare in –

14

Anche se il file di configurazione risolve questo problema, non è sempre un'opzione. Ho avuto lo stesso problema per il mio processo di installazione da riga di comando e non ero in grado di modificare i file di configurazione su tutte le macchine e le distribuzioni python.

Questa è la mia soluzione:

Per mingw32 e pacchetti, che utilizzano VC++ come predefinito:

pip install --global-option build_ext --global-option --compiler=mingw32 <package_zip> 

Per Visual C++ su WinPython, che mingw32 usa come impostazione predefinita:

pip install --global-option build_ext --global-option --compiler=msvc <package_zip> 
Problemi correlati