Wiem, jak to ustawić w moim / etc / profile i moich zmiennych środowiskowych.
Ale co, jeśli chcę ustawić to podczas skryptu? Czy to import OS, sys? Jak mam to zrobić?
Wiem, jak to ustawić w moim / etc / profile i moich zmiennych środowiskowych.
Ale co, jeśli chcę ustawić to podczas skryptu? Czy to import OS, sys? Jak mam to zrobić?
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
).
sys.path.insert(0, '/path/to/whatever')
.Możesz pobrać i ustawić zmienne środowiskowe poprzez
os.environ
:Ale ponieważ Twój tłumacz już działa, nie przyniesie to żadnego efektu. Lepiej jest używać
która jest tablicą, w którą
PYTHONPATH
zostanie przekształcony przy uruchomieniu interpretera.źródło
Jeśli wstawisz
sys.path.append('dir/to/path')
bez zaznaczenia, że jest już dodany, możesz wygenerować długą listę wsys.path
. W tym celu polecam:źródło
PYTHONPATH kończy się w sys.path , który można modyfikować w czasie wykonywania.
źródło
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.źródło
os.system()
nie „restartuje powłoki Pythona”, uruchamia nową interaktywną instancję Pythona. Kiedy wrócisz z tego, wrócisz do skryptu wywołującego.W Linuksie to też działa:
źródło