Quando viene importato un modulo non incorporato, l'interprete cerca nelle posizioni indicate da sys.path
. sys.path
viene inizializzato da queste posizioni (http://docs.python.org/library/sys.html#sys.path):Come viene determinato il percorso di ricerca del modulo Python su Mac OS X?
- la directory che contiene lo script di input (o la directory corrente)
- PYTHONPATH
- l'installazione-dipendente predefinita
Mentre i primi due le fonti sono semplici, qualcuno può spiegare come funziona il terzo e quali possibilità ci sono per influenzarlo?
Anche se mi sarebbe interessato a una soluzione generale, i miei problemi specifici sono:
- Ho installato il Enthought distribution 7.2 32-bit, e poi Scipy-Superpack. Ora enthought python prova ad importare numpy da
/Library/Python/2.7/
, che è il posto dove superpack li ha installati, invece che dai pacchetti del sito enthought. - a
wxPython
un'applicazione creata conpy2app
-A
non ha lo stessosys.path
come all'avvio dell'applicazione conpython start_app.py
.
Grazie per questa risposta! La ragione per cui sono interessato alla terza fonte in particolare è per i casi in cui ci sono librerie indesiderate che non sono in 'PYTHONPATH', che causano un errore in cui non ho accesso diretto a sys.path, ad es. quando si costruisce la documentazione della sfinge. – christianbrodbeck