Como descubro quais diretórios estão listados na PYTHONPATH
variável do meu sistema , de dentro de um script Python (ou do shell interativo)?
python
python-module
pythonpath
Paul D. Waite
fonte
fonte
PYTHONPATH
. Usesys.path
para isso.sys.path
é "Uma lista de cadeias de caracteres que especifica o caminho de pesquisa dos módulos" - docs.python.org/2/library/sys.html#sys.path . PYTHONPATH é uma variável de ambiente que afeta esta lista. Por qualquer definição razoável,sys.path
é o seu "caminho python".python -m site
.Respostas:
sys.path
pode incluir itens que não estão especificamente na suaPYTHONPATH
variável de ambiente. Para consultar a variável diretamente, use:fonte
sys.path
.Você provavelmente também desejaria isso:
Ou como um liner do terminal:
Advertência : Se você possui várias versões do Python instaladas, use um comando
python2
oupython3
.fonte
python -c "import sys; print('\n'.join(sys.path))"
Não consigo editar a outra resposta. Tem um pequeno erro, pois é apenas para Windows. A solução mais genérica é usar os.sep como abaixo:
sys.path pode incluir itens que não estão especificamente na sua variável de ambiente PYTHONPATH. Para consultar a variável diretamente, use:
fonte
os.sep
retorna o separador de diretório para o sistema operacional, por exemplo/
. O separador usado no caminho do Python é diferente e retornadoos.pathsep
como mostrado na resposta aceita.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:
SE definido no shell como
ENTÃO resultado =>
Resultado ELSE =>
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:
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.
fonte
Python me diz onde ele mora quando me envia uma mensagem de erro :)
fonte
Usa isto:
Ou uma linha do cmd:
fonte