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.path
jest inicjowany przez podzielenie wartości PYTHONPATH
znaku 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ż .pth
pliki 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ą PYTHONPATH
zostanie 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/path
nastę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')
.