Как избежать проблем с импортом, когда документы Sphinx создаются из каталога, отличного от родительского приложенияPython

Программы на Python
Anonymous
Как избежать проблем с импортом, когда документы Sphinx создаются из каталога, отличного от родительского приложения

Сообщение Anonymous »

Я хочу автоматически создать документацию для проекта Python. Мне удалось создать простой конвейер, работающий со sphinx, но результат не очень приятен, и я был бы признателен за некоторые рекомендации о том, как сделать вывод более чистым, а входные данные более удобными в обслуживании.
Мой проект организовано следующим образом:

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

docs
|-- build
|-- index.rst
|-- conf.py
app
|-- main_app.py #entry point that intializes everything, internal imports in .py files are relative to here
views
|-- view1.py
|-- view2.py
|-- ...
controllers
|-- controller1.py
|-- ...
models
|-- model1.py
|-- ...
utils
|-- ...
plugins
|-- ...
Вопрос 1
В моем файле conf.py мне пришлось имитировать импорт, чтобы его запустить, вот так:

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

import os
import sys
sys.path.insert(0, os.path.abspath('..'))
autodoc_mock_imports = ['utils', 'models','PySide6', 'controllers', 'views', 'configs']
Я считаю, что это связано с тем, что оператор импорта в файлах .py записывается относительно местоположения main_app.py, тогда как документы генерируются из папки docs. Хотя это работает, это похоже на хак, который в какой-то момент меня укусит. Есть ли более изящный способ решить эту проблему без необходимости имитировать импорт?

Подробнее здесь: https://stackoverflow.com/questions/786 ... rent-direc

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