У меня есть проект, имеющий следующую структуру:
Project
|_ code
|_ subfolder_1
|_ app
|_ a.py
|_ ...
|_ subfolder_2
|_ app
|_ b.py
|_ ...
|_ docs
|_ ...
Исходные файлы Sphinx находятся в каталоге docs
. Я хотел бы сослаться на классы и модули, которые живут под subfolder_1/app
и subfolder_2/app
.
Я попытался добавить следующее к conf.py
:
sys.path.insert(0, os.path.abspath('../../code/subfolder_1'))
sys.path.insert(0, os.path.abspath('../../code/subfolder_2'))
и сослаться на классы с:
.. automodule:: app.a
:members:
:undoc-members:
.. automodule:: app.b
:members:
:undoc-members:
, но дубликаты каталогов app
, кажется, вызывают неожиданное поведение для Sphinx, который находит модули только в subfolder_1/app
или subfolder_2/app
.
Я также пытался ссылаться на подкаталоги как пакеты в conf.py
:
sys.path.insert(0, os.path.abspath('../../code'))
и ссылаться на классы с помощью:
.. automodule:: subfolder_1.app.a
:members:
:undoc-members:
.. automodule:: subfolder_2.app.b
:members:
:undoc-members:
, но Sphinx будет выдавать несколько ошибок failed to import module
, поскольку subfolder_1
и subfolder_2
оба каталога "root", с которых начинается все в соответствующем каталоге app
.
Есть ли какие-либо исправления / лучшие практики для успешного создания документов Sphinx для этого макета проекта?