为什么Sphinx不会自动记录模块变量?

5

我希望能够自动记录模块变量,但它却没有起作用。所有的变量都在文档中缺失了... 我该如何修复这个问题,以便autodoc可以列出每个模块变量?

mypackage/__init__.py:

class __init__:
    test = 'test'
    _test = '_test'
    __test = '__test'
    __test__ = '__test__'

__author__ = 'author'
__email__ = 'author_email'
__description__ = 'description'
__version__ = 'version'

并且文档中的图片:

在此输入图片描述


根据Python最佳实践,下划线开头的模块被视为模块内部的内容,autodoc默认不会对其进行文档化。你可以查看Sphinx文档以了解相关选项,或者显式地设置__all__来指定你要导出的模块变量。 - Mikko Ohtamaa
我尝试过了,但没有成功。我认为这是一个错误... - user2081554
2个回答

0

1
我已经在conf.py文件中完成了这个操作... autodoc_default_flags = ['members','special-members','private-members','undoc-members'],因为我看到类的私有成员和特殊成员已经起作用了,但对于模块的私有成员却没有起作用...也许是Python版本的差异? - user2081554

0
我已经阅读了很多关于这个问题的帖子,花了一些时间才最终让它正常工作。 我知道这是一个旧帖子,但我仍然希望我的代码能帮助其他人。 Automodule确实支持这个功能,但由于某种原因,它不喜欢在变量上方有注释,而这一直是我首选的注释方式。

config.py:

my_var = None
"""
This is my variable
"""

# This is not found because Sphinx does not like comments above variables
my_var_not_found = None
.rst文件:
.. automodule:: config
   :special-members:

HTML结果

config.my_var = None
     This is my variable

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接