Odpowiedzi:
Nie ustawiasz PYTHONPATH, dodajesz wpisy do sys.path. Jest to lista katalogów, które powinny być przeszukiwane pod kątem pakietów Pythona, więc możesz po prostu dołączyć swoje katalogi do tej listy.
sys.path.append('/path/to/whatever')
W rzeczywistości sys.pathjest inicjowany przez podzielenie wartości PYTHONPATHznaku separatora ścieżki ( :w systemach typu Linux,; w systemie Windows).
Możesz również dodawać katalogi za pomocą site.addsitedir, a ta metoda uwzględni również .pthpliki istniejące w przekazanych katalogach. (Nie miałoby to miejsca w przypadku katalogów określonych w PYTHONPATH).
Możesz pobrać i ustawić zmienne środowiskowe poprzez os.environ:
import os
user_home = os.environ["HOME"]
os.environ["PYTHONPATH"] = "..."
Ale ponieważ Twój tłumacz już działa, nie przyniesie to żadnego efektu. Lepiej jest używać
import sys
sys.path.append("...")
która jest tablicą, w którą PYTHONPATHzostanie przekształcony przy uruchomieniu interpretera.
Jeśli wstawisz sys.path.append('dir/to/path')bez zaznaczenia, że jest już dodany, możesz wygenerować długą listę w sys.path. W tym celu polecam:
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
możesz ustawić PYTHONPATH, os.environ['PATHPYTHON']=/some/pathnastępnie musisz wywołać, os.system('python')aby zrestartować powłokę Pythona, aby nowo dodana ścieżka była skuteczna.
os.system()nie „restartuje powłoki Pythona”, uruchamia nową interaktywną instancję Pythona. Kiedy wrócisz z tego, wrócisz do skryptu wywołującego.
sys.path.insert(0, '/path/to/whatever').