Aggiunta permanente di un percorso file a sys.path in Python


97

Ho avuto un file chiamato example_file.py, che ho voluto utilizzare da vari altri file, così ho deciso di aggiungere example_file.pyalle sys.pathe importare questo file in un altro file per utilizzare il file. Per fare ciò, ho eseguito quanto segue in IPython.

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

Ho potuto vedere il percorso che avevo appena aggiunto e quando ho provato a importare questo file da un altro percorso di directory come questo:

import example_file

ha funzionato bene, ma una volta uscito da IPython, inserito di nuovo e controllato sys.path, ho visto che il percorso che avevo aggiunto non era presente, quindi come faccio ad aggiungere un percorso a sys.path in modo permanente in Python?


3
Rendi il tuo codice un pacchetto appropriato, 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 file E NON UN SOLO PERCORSO A UN FILE.
Andreas Jung



Non confondere il percorso di sistema con PYTHONPATH.
Burhan Khalid

Risposte:


95

Ci sono alcuni modi. Uno dei più semplici è creare un my-paths.pthfile (come descritto qui ). Questo è solo un file con l'estensione .pthche hai inserito nella site-packagesdirectory di sistema . Su ogni riga del file inserisci un nome di directory, quindi puoi inserire una riga lì con /path/to/the/e aggiungerà quella directory al percorso.

È anche possibile utilizzare la variabile d'ambiente PYTHONPATH, che è come la variabile PATH di sistema ma contiene directory a cui verranno aggiunte sys.path. Consulta la documentazione .

Nota che qualunque cosa tu faccia, sys.pathcontiene directory non file. Non puoi "aggiungere un file a sys.path". Aggiungi sempre la sua directory e poi puoi importare il file.


1
ok grazie va bene ho aggiunto la mia directory che consiste di file e funziona quando ho importato il file da un'altra posizione, ma il problema quando sono uscito da ipython e di nuovo sono entrato per controllare il mio percorso, non appare, Non voglio farlo ogni volta che ho inserito il codice, voglio aggiungere il percorso della directory a sys.path in modo permanente, come farlo
Shiva Krishna Bavandla

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

1
Il sitepacchetto è stato perfetto.
Zeinab Abbasimazar

8
risolto il mio problema con sys.path.append('C:\\python34\\lib\\site-packages')grazie!
tylerlindell

Per i posteri: il .pthfile è ciò che la documentazione del modulo del sito chiama a path configuration file. Da segnalare il file di configurazione del percorso:no check is made that the item refers to a directory rather than a file. No item is added to sys.path more than once. Blank lines and lines beginning with # are skipped. Lines starting with import (followed by space or tab) are executed.
Minh Tran

1

In questo modo ha funzionato per me:

aggiungendo il percorso che ti piace:

export PYTHONPATH=$PYTHONPATH:/path/you/want/to/add

controllo: puoi eseguire 'export' cmd e controllare l'output oppure puoi controllarlo usando questo cmd:

python -c "import sys; print(sys.path)"
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.