Eu sei como configurá-lo em meu / etc / profile e em minhas variáveis de ambiente.
Mas e se eu quiser configurá-lo durante um script? É o sistema de importação, sys? Como eu faço isso?
Eu sei como configurá-lo em meu / etc / profile e em minhas variáveis de ambiente.
Mas e se eu quiser configurá-lo durante um script? É o sistema de importação, sys? Como eu faço isso?
Você não define PYTHONPATH
, você adiciona entradas a sys.path
. É uma lista de diretórios que devem ser pesquisados em busca de pacotes Python, então você pode simplesmente anexar seus diretórios a essa lista.
sys.path.append('/path/to/whatever')
Na verdade, sys.path
é inicializado dividindo o valor de PYTHONPATH
no caractere separador de caminho ( :
em sistemas semelhantes ao Linux, ;
no Windows).
Você também pode adicionar diretórios usando site.addsitedir
, e esse método também levará em conta os .pth
arquivos existentes nos diretórios que você passar. (Isso não seria o caso com os diretórios que você especifica em PYTHONPATH
.)
sys.path.insert(0, '/path/to/whatever')
.Você pode obter e definir variáveis de ambiente por meio de
os.environ
:Mas como o seu interpretador já está em execução, isso não terá efeito. Você é melhor usar
que é a matriz em que você
PYTHONPATH
será transformado na inicialização do interpretador.fonte
Se você colocar
sys.path.append('dir/to/path')
sem verificar se já está adicionado, você pode gerar uma longa lista emsys.path
. Para isso, recomendo:fonte
PYTHONPATH termina em sys.path , que você pode modificar em tempo de execução.
fonte
você pode definir
PYTHONPATH
, poros.environ['PATHPYTHON']=/some/path
, então você precisa chamaros.system('python')
para reiniciar o shell do python para tornar o caminho recém-adicionado eficaz.fonte
os.system()
não "reinicia o shell python", ele inicia uma nova instância interativa do Python. Quando você retorna disso, você está de volta ao script de chamada.Eu linux isso também funciona:
fonte