PYTHONPATH - це змінна середовище, значення якої - список каталогів. Після встановлення, Python використовується для пошуку імпортованих модулів разом з іншими std. та сторонні бібліотечні каталоги, перелічені в "sys.path" Python.
Як і будь-які інші змінні середовища, ви можете експортувати його в оболонці або в ~ / .bashrc, дивіться тут . Ви можете запитати os.environ ['PYTHONPATH'] щодо його значення в Python, як показано нижче:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
ЯКЩО визначено в оболонці як
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
ТОГО результат =>
/home/Documents/DjangoTutorial/mysite
['', '/home/Documents/DjangoTutorial/mysite', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
Результат ELSE =>
PYTHONPATH is not defined
Щоб встановити PYTHONPATH на кілька шляхів, дивіться тут .
Зауважте, що ви можете додати або видалити шлях пошуку через sys.path.insert (), del або видалити () під час виконання, але НЕ через os.environ []. Приклад:
>>> os.environ['PYTHONPATH']="$HOME/Documents/DjangoTutorial/mysite"
>>> 'PYTHONPATH' in sorted(os.environ)
True
>>> sys.path // but Not there
['', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>> sys.path.insert(0,os.environ['PYTHONPATH'])
>>> sys.path // It's there
['$HOME/Documents/DjangoTutorial/mysite', '', '/usr/local/lib/python37.zip', '/usr/local/lib/python3.7', '/usr/local/lib/python3.7/lib-dynload', '/usr/local/lib/python3.7/site-packages']
>>>
Підсумовуючи, PYTHONPATH - це один із способів визначення шляхів пошуку Python для імпортованих модулів у sys.path. Ви також можете застосувати список операцій безпосередньо до sys.path без допомоги PYTHONPATH.
PYTHONPATH
. Використовуйтеsys.path
для цього.