PYTHONPATH é uma variável de ambiente cujo valor é uma lista de diretórios. Uma vez definido, é usado pelo Python para procurar módulos importados, junto com outros std. e diretórios de bibliotecas de terceiros listados no "sys.path" do Python.
Como qualquer outra variável de ambiente, você pode exportá-lo no shell ou no ~ / .bashrc, veja aqui . Você pode consultar os.environ ['PYTHONPATH'] por seu valor em Python, como mostrado abaixo:
$ python3 -c "import os, sys; print(os.environ['PYTHONPATH']); print(sys.path) if 'PYTHONPATH' in sorted(os.environ) else print('PYTHONPATH is not defined')"
SE definido no shell como
$ export PYTHONPATH=$HOME/Documents/DjangoTutorial/mysite
ENTÃO resultado =>
/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']
Resultado ELSE =>
PYTHONPATH is not defined
Para definir PYTHONPATH para vários caminhos, veja aqui .
Observe que é possível adicionar ou excluir um caminho de pesquisa via sys.path.insert (), del ou remove () no tempo de execução, mas NÃO através do os.environ []. Exemplo:
>>> 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']
>>>
Em resumo, PYTHONPATH é uma maneira de especificar o (s) caminho (s) de pesquisa do Python para módulos importados no sys.path. Você também pode aplicar operações de lista diretamente ao sys.path sem o auxílio do PYTHONPATH.
PYTHONPATH
. Usesys.path
para isso.