У меня есть пользовательский волшебный элемент c, который мне нужно загрузить с относительного пути. Я могу сделать это, когда каталог модуля находится в том же месте, что и ноутбук. Однако, это не работает, когда у меня более сложная структура каталогов.
Это работает, если структура каталогов такая:
test_custom_magic\
|-custom_magic_code\
|-__init__.py
|-etcetc.py
|-test_notebook.ipy
В этом сценарии я просто делаю %reload_ext custom_magic_code
и мой код работает.
Однако теперь, когда я закончил написание и тестирование кода, я пытаюсь использовать его в более сложной директории:
important_project\
|-notebooks\
|-do_something_important.ipy
|-do_something_else_important.ipy
|-custom_magic_code\
|-__init__.py
|-etcetc.py
In do_something_important.ipy
, я не могу просто %reload_ext custom_magic_code
. Я получаю ModuleNotFoundError
.
Если я пытаюсь %reload_ext ../custom_magic_code
(или другой уровень вложенных каталогов), я получаю эту ошибку: TypeError: the 'package' argument is required to perform a relative import for '../custom_magic_code'
Как мне решить эту проблему? Обратите внимание, что мой пользовательский код magi c достаточно хорош для того, чтобы я мог работать локально. Я пока не совсем готов упаковать его и установить через pip / conda / nbextension (и я все равно стараюсь не изучать его, пока не смогу заставить мой текущий код работать).