Подтвердить что ты не робот

Sphinx, используя автомодуль для поиска подмодулей

При использовании автомодуля sphinx (http://sphinx.pocoo.org/ext/autodoc.html#directive-automodule),

Я просто пишу в файле .rst:

.. automodule:: my_module
    :members:

Он отлично документирует my_module, но он не находит внутренние модули, такие как my_module.inner_module0 и my_module.inner_module1. Есть ли что-то, что необходимо указать в файле __init__.py, кроме переменной __all__?

Кроме того, я знаю о sphinx-apidoc. Но эта команда слишком много (раскрывает каждую функцию/папку, включая недокументированные).

4b9b3361

Ответ 1

Похоже, вы хотите дать директиве automodule имя пакета и перезапустить его в каталог и документировать каждый модуль Python. Это еще не подтверждено. Вы укажете полное имя точечного модуля для каждого модуля, который хотите документировать.

Например, с учетом следующей структуры каталогов (из документации Python). Вы не можете указать .. automodule:: sound.formats и документировать все модули в каталоге. Вам нужно указать команду automodule для каждого модуля: .. automodule:: sound.formats.waveread, .. automodule:: sound.formats.wavewrite и т.д.

sound/                          Top-level package
      __init__.py               Initialize the sound package
      formats/                  Subpackage for file format conversions
              __init__.py
              wavread.py
              wavwrite.py
              aiffread.py
              aiffwrite.py
              auread.py
              auwrite.py
              ...
      effects/                  Subpackage for sound effects
              __init__.py
              echo.py
              surround.py
              reverse.py
              ...