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.pathviene inizializzato suddividendo il valore di PYTHONPATHsul carattere separatore di percorso ( :su sistemi tipo Linux, ;su Windows).
Puoi anche aggiungere directory usando site.addsitedir, e quel metodo terrà conto anche dei .pthfile 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 PYTHONPATHverrà 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').