Я пытаюсь автоматически генерировать базовую документацию для своей кодовой базы с помощью Sphinx. Однако у меня возникают трудности с инструкцией Sphinx для рекурсивного сканирования моих файлов.
У меня есть кодовая база Python со структурой папок вроде:
<workspace>
src
mypackage
__init__.py
subpackageA
__init__.py
submoduleA1
submoduleA2
subpackageB
__init__.py
submoduleB1
submoduleB2
Я запускал sphinx-quickstart в <workspace>
, поэтому теперь моя структура выглядит так:
<workspace>
src
mypackage
__init__.py
subpackageA
__init__.py
submoduleA1
submoduleA2
subpackageB
__init__.py
submoduleB1
submoduleB2
index.rst
_build
_static
_templates
Я прочитал учебник quickstart http://sphinx.pocoo.org/tutorial.html, и хотя я все еще пытаюсь понять документы, то, как он сформулировал, заставляет меня беспокоиться о том, что Sphinx предполагает Я собираюсь вручную создавать файлы документации для каждого отдельного модуля/класса/функции в моей кодовой базе.
Однако я заметил оператор "automodule", и я включил autodoc во время быстрого запуска, поэтому я надеюсь, что большая часть документации может быть сгенерирована автоматически. Я изменил свой conf.py, чтобы добавить мою папку src в sys.path, а затем модифицировал мой index.rst для использования automodule. Итак, теперь мой index.rst выглядит так:
Contents:
.. toctree::
:maxdepth: 2
Indices and tables
==================
* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
.. automodule:: alphabuyer
:members:
У меня есть десятки классов и функций, определенных в подпакетах. Тем не менее, когда я запускаю:
sphinx-build -b html . ./_build
он сообщает:
updating environment: 1 added, 0 changed, 0 removed
И это, кажется, не удалось импортировать что-либо внутри моего пакета. Просмотр сгенерированного index.html ничего не показывает рядом с "Содержание:". На странице Index отображается только "mypackage (module)", но нажатие на нее показывает, что оно также не содержит содержимого.
Как вы направляете Sphinx для рекурсивного анализа пакета и автоматически генерируете документацию для каждого класса/метода/функции, с которой он сталкивается, без необходимости вручную вручную перечислять каждый класс?