PYTHONPATH - это переменная окружения, значением которой является список каталогов. После установки он используется Python для поиска импортированных модулей, наряду с другими стандартными данными. и сторонние библиотечные каталоги, перечисленные в "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']
Иначе результат =>
PYTHONPATH is not defined
Чтобы установить PYTHONPATH для нескольких путей, смотрите здесь .
Обратите внимание, что можно добавить или удалить путь поиска через sys.path.insert (), del или remove () во время выполнения, но НЕ через 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
для этого.