Estou tentando importar um módulo de um diretório específico.
O problema é que, se eu usar sys.path.append(mod_directory)
para acrescentar o caminho e abrir o interpretador python, o diretório mod_directory
será adicionado ao final da lista sys.path. Se eu exportar a PYTHONPATH
variável antes de abrir o interpretador python, o diretório será adicionado ao início da lista. No último caso, posso importar o módulo, mas no primeiro, não posso.
Alguém pode explicar por que isso está acontecendo e me dar uma solução para adicionar mod_directory
o início, dentro de um script python?
python
mechanize
python-import
pythonpath
UnadulteratedImagination
fonte
fonte
site
módulo .Respostas:
Isso está funcionando como documentado. Todos os caminhos especificados em
PYTHONPATH
são documentados como normalmente vindo após o diretório de trabalho, mas antes dos caminhos fornecidos pelo interpretador padrão.sys.path.append()
anexa ao caminho existente. Veja aqui e aqui . Se você deseja que um diretório específico seja o primeiro, insira-o no início do sys.path:Dito isto, geralmente existem maneiras melhores de gerenciar importações do que usar
PYTHONPATH
ou manipularsys.path
diretamente. Veja, por exemplo, as respostas para esta pergunta .fonte
Você poderia usar:
fonte
Quanto a mim, eu preciso caffe para o meu caminho python. Eu posso adicionar o caminho para o arquivo
/home/xy/.bashrc
adicionandoexport PYTHONPATH=/home/xy/caffe-master/python:$PYTHONPATH
.para o meu
/home/xy/.bashrc
arquivo.Mas quando eu uso pycharm, o caminho ainda não está.
Para que eu possa adicionar o caminho à
PYTHONPATH
variável, execute -> editar Configuração.fonte
A alteração temporária de diretórios funciona bem para a importação:
fonte
Ao executar um script Python do Powershell no Windows, isso deve funcionar:
fonte