Ответ 1
Вы должны убедиться, что родительский каталог new_module
находится на вашем пути к Python. Для ноутбука, который находится на один уровень ниже new_module
, этот код поможет:
import os
import sys
nb_dir = os.path.split(os.getcwd())[0]
if nb_dir not in sys.path:
sys.path.append(nb_dir)
Если вы находитесь ниже в иерархии каталогов, вам нужно будет изменить способ установки nb_dir
, но это все. Вы не должны запускать этот код для записной книжки в Jupyter notebooks
, так как это добавит родителя этого каталога в путь python, что, вероятно, нежелательно.
Причина, по которой импорт работает для notebook1
заключается в том, что sys.path содержит ''
(пустую строку), которая находится в стороне от текущего каталога работающего интерпретатора (в данном случае, ядра). Поиск в Google для explain python path
python sys.path
несколько хороших объяснений того, как python использует PYTHONPATH
(он же sys.path
).