Эта проблема возникает из-за того, как интерпретатор командной строки IPython использует ваш текущий путь по сравнению с тем, как это делает отдельный процесс (будь то ноутбук IPython, внешний процесс и т. Д.). IPython будет искать модули для импорта, которые находятся не только в вашем sys.path, но и в вашем текущем рабочем каталоге. При запуске интерпретатора из командной строки текущий каталог, в котором вы работаете, совпадает с тем, в котором вы запустили ipython. Если вы запустите
import os
os.getcwd()
вы увидите, что это правда.
Однако предположим, что вы используете блокнот ipython, запустите, os.getcwd()
и ваш текущий рабочий каталог - это папка, из которой вы указали блокноту работать в вашем файле ipython_notebook_config.py (обычно с использованием этого c.NotebookManager.notebook_dir
параметра).
Решение состоит в том, чтобы предоставить интерпретатору Python путь к вашему модулю. Самое простое решение - добавить этот путь в список sys.path. В записной книжке сначала попробуйте:
import sys
sys.path.append('my/path/to/module/folder')
import module-of-interest
Если это не сработает, у вас возникла другая проблема, не связанная с путем к импорту, и вам следует предоставить дополнительную информацию о своей проблеме.
Лучший (и более постоянный) способ решить эту проблему - установить PYTHONPATH , который предоставляет интерпретатору дополнительные каталоги для поиска пакетов / модулей python. Редактирование или установка PYTHONPATH как глобальной переменной зависит от ОС и подробно обсуждается здесь для Unix или Windows .