使用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这样的内部模块。除了__all__变量之外,是否还需要在__init__.py文件中指定某些内容?
另外,我知道sphinx-apidoc。但是这个命令文件太多了(暴露了包含无证件的每个函数/文件夹)。
答案 0 :(得分:30)
听起来你想给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
...
答案 1 :(得分:1)
在我看来,using the :imported-members:
option(非直接链接,请使用搜索)现在应该可以,如果__init__.py
导入这些子模块。
但是,我个人无法完成这项工作。
编辑:可能是known bug。