Risposte:
Non si imposta PYTHONPATH
, si aggiungono voci a sys.path
. È un elenco di directory in cui cercare i pacchetti Python, quindi puoi semplicemente aggiungere le tue directory a quell'elenco.
sys.path.append('/path/to/whatever')
Infatti, sys.path
viene inizializzato suddividendo il valore di PYTHONPATH
sul carattere separatore di percorso ( :
su sistemi tipo Linux, ;
su Windows).
Puoi anche aggiungere directory usando site.addsitedir
, e quel metodo terrà conto anche dei .pth
file esistenti all'interno delle directory che passi. (Questo non sarebbe il caso delle directory in cui specifichi PYTHONPATH
.)
Puoi ottenere e impostare le variabili d'ambiente tramite os.environ
:
import os
user_home = os.environ["HOME"]
os.environ["PYTHONPATH"] = "..."
Ma poiché il tuo interprete è già in esecuzione, ciò non avrà alcun effetto. Stai meglio usando
import sys
sys.path.append("...")
che è l'array in cui PYTHONPATH
verrà trasformato all'avvio dell'interprete.
Se lo metti sys.path.append('dir/to/path')
senza spunta è già aggiunto, potresti generare un lungo elenco in formato sys.path
. Per questo, consiglio questo:
import sys
import os # if you want this directory
try:
sys.path.index('/dir/path') # Or os.getcwd() for this directory
except ValueError:
sys.path.append('/dir/path') # Or os.getcwd() for this directory
puoi impostare PYTHONPATH
, da os.environ['PATHPYTHON']=/some/path
, quindi devi chiamare os.system('python')
per riavviare la shell python per rendere effettivo il percorso appena aggiunto.
os.system()
non "riavvia la shell python", avvia una nuova istanza Python interattiva. Quando torni da quello, sei tornato nel copione chiamante.
sys.path.insert(0, '/path/to/whatever')
.