Код: Выделить всё
meta_project
project1
__init__.py
lib
module.py
__init__.py
notebook_folder
notebook.jpynb
Код: Выделить всё
from ..project1.lib.module import function
Код: Выделить всё
SystemError Traceback (most recent call last)
in ()
----> 1 from ..project1.lib.module import function
SystemError: Parent module '' not loaded, cannot perform relative import
Обратите внимание: сервер блокнота создается на уровне каталога мета_проекта, поэтому он должен иметь доступ к информации в этих файлах.
Также обратите внимание, что, по крайней мере, изначально предполагалось, что проект1 не задумывался как модуль и поэтому не имеет __init__.py file, он подразумевался просто как каталог файловой системы. Если решение проблемы требует рассмотрения его как модуля и включения файла __init__.py (даже пустого), это нормально, но этого недостаточно для решения проблемы.
Я разделяю этот каталог между компьютерами, и относительный импорт позволяет мне использовать один и тот же код везде, и я часто использую блокноты для быстрого прототипирования, поэтому предложения, включающие объединение абсолютных путей, вряд ли будут полезны.
Редактировать: Это не похоже на относительный импорт в Python 3, в котором говорится об относительном импорте в Python 3 в целом и – в частности – запуск скрипта из каталога пакета. Это связано с работой в блокноте Jupyter при попытке вызвать функцию в локальном модуле в другом каталоге, которая имеет как разные общие, так и частные аспекты.
Подробнее здесь: https://stackoverflow.com/questions/344 ... elative-im