2012-09-04 8 views
30

ho avuto un file example_file.py, voglio usare questo example_file.py da vari file, così ho deciso di aggiungere al example_file.pysys.path e l'importazione del file in un altro file per l'utilizzo della funzionalità del file. avevo aperto ipython e fatto il seguentel'aggiunta di un percorso di file a sys.path in python

import sys 
sys.path 
sys.path.append('/path/to/the/example_file.py') 

e quando ho provato ad importare il file da un altro percorso della directory come

import example_file 

il suo bel lavoro, ma dopo che sono uscito dalla ipython sono entrato di nuovo in esso e controllato il sys.path, qui il percorso che ho aggiunto non è presente, quindi chiunque può per favore fammi sapere come aggiungere un percorso a sys.path permanentemente in python

+2

Rendi il tuo codice un pacchetto adeguato, rendilo facile_installabile e sii felice per il resto della tua vita (invece di armeggiare). A parte questo: ogni documentazione ti dice CHIARAMENTE che 'sys.path.append()' accetta una directory contenente il file AND NOT SINGLE PATH TO A FILE. –

+0

possibile duplicato di [Aggiunta di una cartella al percorso di Python in modo permanente] (http://stackoverflow.com/questions/3722248/adding-folder-to-pythons-path-permanently) – DhruvPathak

+0

ki hanno aggiunto una directory che contiene il mio file, ma come rendere permanente quel percorso in sys.path –

risposta

32

Ci sono alcuni modi. Uno dei più semplici è quello di creare un file my-paths.pth (come descritto here). Questo è solo un file con l'estensione .pth inserita nella directory del sistema site-packages. Su ogni riga del file viene inserito un nome di directory, quindi è possibile inserire una riga con /path/to/the/ e aggiungerà tale directory al percorso.

È anche possibile utilizzare la variabile di ambiente PYTHONPATH, che è come la variabile PATH di sistema ma contiene le directory che verranno aggiunte a sys.path. Vedi the documentation.

Si noti che non importa cosa si fa, sys.path contiene directory non file. Non è possibile "aggiungere un file a sys.path". Si aggiunge sempre la sua directory e quindi è possibile importare il file.

+0

ok grazie, va bene ho aggiunto la mia directory che consiste di file e il suo funzionamento quando ho importato il file da un'altra posizione, bu il problema quando sono uscito da ipython e di nuovo mi sono avvicinato per controllare il mio percorso, non sembra, non voglio farlo ogni volta che ho inserito il codice, voglio aggiungere permanentemente il percorso della directory a sys.path, come fai questo –

+0

@Kouripm: il tuo commento suggerisce che in realtà non hai seguito il mio suggerimento, né i suggerimenti nel post duplicato collegato sopra. – BrenBarn

+0

Il pacchetto 'site' era perfetto. –