如何让Sphinx autodoc/apidoc不生成submodules和subpackages分组?
取消Sphinx-RTD-Theme中autodoc的subpackages/submodules分组
要实现你需要的简洁层级结构,只需调整Sphinx配置和文档生成方式:
1. 修改conf.py配置
在项目的conf.py中做以下调整:
- 确保启用
sphinx.ext.autosummary扩展(与sphinx.ext.autodoc、sphinx_rtd_theme一同启用) - 开启自动生成autosummary内容
- 配置autodoc默认选项,避免自动分组
添加/修改如下代码:
extensions = [ 'sphinx.ext.autodoc', 'sphinx.ext.autosummary', 'sphinx_rtd_theme', ] # 自动生成autosummary文件 autosummary_generate = True # 配置autodoc默认行为,取消分组 autodoc_default_options = { 'member-order': 'bysource', 'show-inheritance': True, }
2. 调整主文档文件(如index.rst)
替换原来的automodule指令,改用autosummary块递归生成目录:
.. autosummary:: :toctree: _autosummary :recursive: my_package
3. 重新构建文档
执行以下命令重新生成文档:
make clean && make html
完成以上步骤后,生成的侧边栏和目录会直接显示my_package下的子包与子模块层级,不再出现subpackages和submodules的额外分组。
内容的提问来源于stack exchange,提问作者DilithiumMatrix
相关产品推荐
相关产品推荐

