Допустим, у меня есть пакет Python mymodule
, основанный на расширении Pybind11, где следующий код работает как чудо после запуска python setup.py install
:
from mypackage.subA import foo # foo is written in C++.
from mypackage.subB import bar # Same for bar.
Теперь я хочу добавить чистый код Python в один из подмодулей, скажем, subA
, чтобы я также мог сделать
from mypackage.subA import pure_python_func
Я сделал MCVE для такого проекта , чтобы, надеюсь, сделать это как можно яснее.
Если я добавлю файл mypackage/subA.py
, в который я напишу pure_python_func
(и добавлю пустой mypackage/__init__.py
), я могу импортировать часть Python, но модуль расширения исчезнет. * 1017 Т.е. *
from mypackage.subA import pure_python_func # Works
from mypackage.subA import foo # Fails
from mypackage.subB import bar # Fails
Мой вопрос: как я могу получить что-то, имеющее оба кода расширения и Python в одном пакете? Предпочтительно в пределах тех же самых подмодулей, но, по крайней мере, в том же пакете. Любая помощь с благодарностью!