Импортируйте локальную функцию из модуля, расположенного в другом каталоге, с относительным импортом в Jupyter Notebook Python

Программы на Python
Ответить Пред. темаСлед. тема
Anonymous
 Импортируйте локальную функцию из модуля, расположенного в другом каталоге, с относительным импортом в Jupyter Notebook

Сообщение Anonymous »

У меня есть структура каталогов, подобная следующей

Код: Выделить всё

meta_project
project1
__init__.py
lib
module.py
__init__.py
notebook_folder
notebook.jpynb
При работе в блокноте.jpynb, если я пытаюсь использовать относительный импорт для доступа к функции function() в модуле.py с:

Код: Выделить всё

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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «Python»