Esse problema ocorre devido às maneiras pelas quais o interpretador IPython da linha de comando usa seu caminho atual versus a maneira como um processo separado (seja um notebook IPython, um processo externo, etc.). O IPython procurará módulos a serem importados, encontrados não apenas no sys.path, mas também no diretório de trabalho atual. Ao iniciar um intérprete a partir da linha de comando, o diretório atual em que você está operando é o mesmo em que o ipython foi iniciado. Se você executar
import os
os.getcwd()
você verá que isso é verdade.
No entanto, digamos que você esteja usando um notebook ipython, execute os.getcwd()
e seu diretório de trabalho atual seja a pasta na qual você instruiu o notebook a operar no seu arquivo ipython_notebook_config.py (normalmente usando a c.NotebookManager.notebook_dir
configuração).
A solução é fornecer ao interpretador python o caminho para o seu módulo. A solução mais simples é anexar esse caminho à sua lista sys.path. No seu notebook, tente primeiro:
import sys
sys.path.append('my/path/to/module/folder')
import module-of-interest
Se isso não funcionar, você tem um problema diferente em suas mãos, não relacionado ao caminho para a importação, e deve fornecer mais informações sobre o seu problema.
A maneira melhor (e mais permanente) de resolver isso é definir o seu PYTHONPATH , que fornece ao intérprete diretórios adicionais para procurar pacotes / módulos python. A edição ou configuração do PYTHONPATH como uma var global depende do sistema operacional e é discutida em detalhes aqui para Unix ou Windows .