
Quero adicionar uma pasta permanentemente, sys.path
mas não funciona.
No meu Debian Stretch, quando executo:
$ echo $PYTHONPATH
parece vazio
Ao mesmo tempo, quando imprimo o conteúdo de sys.path
, há 10 caminhos diferentes que não são iguais aos contidos em $PATH
(e obviamente em $PYTHONPATH
). Como isso pode ser explicado?
(Tive que criar um virtualenv para um framework, mas acho que não o estou usando agora, então provavelmente não está relacionado, mas não estou confortável com esse conceito, então talvez esteja faltando alguma coisa)
Também tentei modificar .bashrc
para adicionar um caminho $PYTHONPATH
para saber a seguinte linha:
PYTHONPATH=$PYTHONPATH:~/bin
Após a reinicialização, funciona, quero dizer, $PYTHONPATH contém, mas nada muda para sys.path
.
Além disso, $ env | grep ^PYTHON
não retorna nada.
Então, como sys.path
é preenchido e como posso adicionar permanentemente uma pasta a ele?
Responder1
sys.path
em Python é uma "lista de strings que especifica o caminho de pesquisa para módulos. Inicializado a partir da variável de ambiente PYTHONPATH
, mais um padrão dependente da instalação." (Tirado dea documentação on-line do Python).
Para sys.path
ser afetado por PYTHONPATH
, este último deve ser uma variável de ambiente. Se não for uma variável de ambiente, mas apenas uma variável de shell, não será visível pelo python
interpretador. Você a transforma em uma variável de ambiente exportando-a após definir seu valor, ou ao mesmo tempo, como em
export PYTHONPATH=/some/path:/goes/here