2013-04-18 20 views
6

Forse una domanda stupida, ma mi chiedevo da dove le distutils di Python ottengano le opzioni del compilatore? Ottiene errate alcune directory collegate e voglio correggerlo una volta per tutte.Configurazione opzioni del compilatore Distutils

So che dovrebbe esserci un prefisso/lib/pythonver/distutils/distutils.cfg ma non riesco a trovare nessun distutils.cfg in nessun punto del computer. Ovviamente non ho un setup.cfg locale o $ HOME/.pydistutils.cfg.

sto usando l'Enthought di distribuzione a 64 bit, versione 7.3 (Python 2.7) su Mac OS X 10.8.3

Cheers, U.

risposta

6

Io in realtà esportarli per l'ambiente, basta come per configurare autotools':

export CC=/usr/local/bin/clang 
export CFLAGS=-I${HOME}/include 
export LDFLAGS=-lboost 

Se hai bisogno anche per ignorare il linker separatamente:

export LDSHARED=/usr/local/bin/clang -shared 

E se non ti piace export ing le impostazioni per il proprio ambiente, fare qualcosa di simile di un ambiente di una volta:

CC=/usr/local/bin/clang CFLAGS=-I${HOME}/include python setup.py build 

Se si vuole scoprire che cosa le opzioni predefinite erano quando pitone è stato costruito , utilizzare python-config --<flag>. Alcuni flag sono cflags, ldflags, libs o includes.

+0

OK, questo imposterà le variabili, ma non sono impostate in questo momento, quindi da dove vengono le distutils? Non ho trovato alcun suggerimento nei file Python che distutils lo avrebbe letto da qualche altra parte. – Mulle

+0

Vedi anche la risposta di Eric; se non ci sono file di configurazione (si dice che non è lì), i flag del compilatore seguono effettivamente i flag configure/make originali, e quindi possono anche essere visti con 'python-config --cflags' ecc. – Evert

+0

Ah, eccoli ! Dato che non ho compilato Python ma ho preso la distribuzione EPD, non avrei il Makefile immagino. Ma ora so dove guardare e cosa fare. Saluti! – Mulle

3

Le opzioni del compilatore sono prese dal Makefile di CPython. IOW sono uguali a quelli usati per compilare Python. Puoi sovrascrivere la maggior parte di essi sulla riga di comando come descritto da Evert.

Il distutils.cfg globale è qualcosa che un amministratore di sistema può creare per impostare le opzioni predefinite, non un file che viene installato con Python.

Problemi correlati