Я нахожусь в процессе развертывания в Pypi проекта Python, назовем его foobar
. Я хотел бы распространить его с помощью команды оболочки и и команды I Python magi c. Я использую Poetry, и соответствующая часть моего .toml
файла конфигурации:
[tool.poetry.scripts]
foobar = 'foobar.cli:main'
foobar_magic = 'foobar.magic:load_ipython_extension'
После загрузки этого файла в TestPypi и установки его с pip
, команда оболочки (foobar
) работает как положено , Однако выполнение %load_ext foobar_magic
в ноутбуке Jupyter завершается неудачно с:
ModuleNotFoundError: No module named 'foobar_magic'
В соответствии с документацией :
Вы можете разместить свои модули расширения где угодно хочу, если они могут быть импортированы стандартным механизмом импорта Python.
В одной и той же записной книжке я убедился, что оба !foobar
и import foobar
работают. Как я могу также найти foobar_magic
?
Более того, хотя я еще не там, я думаю, суффикс точки входа тоже неверен. Действительно, указанная после :
функция будет вызываться без аргументов, но функция load_ipython_extension()
ожидает экземпляр I Python.
Так что я чувствую себя полностью растерянным и не могу найти ни одного соответствующая документация для развертывания расширений I Python Notebook.
Edit 1. %load_ext foobar.magic
неожиданно работает, и волхвы c %foobar
не жалуются на аргументы , Я не понимаю, почему и почему это %foobar
, а не %foobar_magic
, как заявлено.
Edit 2. Материал foobar_magic = ...
игнорируется или бесполезен. Подавление не имеет никакого значения для %load_ext foobar.magic
. Я думаю, что последний вызов может быть в порядке. Но немного раздражает не понимать, что происходит.