没有子模块的 Sphinx Autodoc

Sphinx Autodoc Without Submodules

我正在开发一个 Python 包,允许用户像这样导入它的功能:

import mymodule
mymodule.afunction()

我正在用 sphinx 记录代码。我首先 运行 sphinx-quickstart,然后我将 conf.py 更改为包括 sys.path.insert(0, os.path.abspath(‘../../src/mymodule’))。然后我运行sphinx-apidoc -f -o source ../src/mymodulemake html。目录结构是这样的:

├── doc
│   ├── Makefile
│   ├── build
│   ├── make.bat
│   └── source
│       ├── _static
│       ├── _templates
│       ├── conf.py
│       ├── index.rst
│       ├── modules.rst
│       └── mymodule.rst
└── src
    └── mymodule
        ├── __init__.py
        └── modulecode.py

输出列出了一个“mymodule.modulecode”子模块。但是因为我的 __init__py,用户没有明确导入 modulecode.

是否有一种自动化的方法使 sphinx 文档列出函数 mymodule.afunction()(用户访问),而不是 mymodule.modulecode.afunction()(用户不访问) t call)?

感谢 mzjn 对我原来的问题提出的有用意见!正如评论中所讨论的,我需要做两件事:

  1. __all__=[list of defined functions] 添加到我的 __init__.py
  2. mymodule.rst 中删除整个 mymodule.modulecode module 部分。