我该如何让Sphinx autosummary显示实例属性的文档?

7
除了实例属性外,所有其他类型(类、属性、方法等)都可以正常工作,但是当autosummary到达实例属性时,它会引发“WARNING: failed to import AClass.a”错误。奇怪的是,表格中带有指向自动文档代码文档的链接,但摘要列为空。
是否有人使其正常工作,或者有任何想法可能出了什么问题?
显示具有链接但没有文档的表格: enter image description here 显示autodoc正在工作(上面的链接不可能没有它): enter image description here 我还尝试了其他形式的文档,例如#: ...样式等,结果都相同。同一模块中的其他所有内容都可以正常工作。在方法等autosummary表中,我确实看到了文档。
示例类:
class AClass(object):
    def __init__(self):
        self.a = 10
        """
        An example instance attribute

        :type: int
        """

示例ReST:

.. autosummary::

    AClass.a

我正在使用Sphinx 1.2.3

1个回答

4

很遗憾,autosummary并不支持这个功能。关键代码位于sphinx.ext.autosummary.__init__.AutoSummary.get_items中,其实质是:

for name in names:

    # <snip>

    try:
        real_name, obj, parent, modname = import_by_name(name, prefixes=prefixes)
    except ImportError:
        self.warn('failed to import %s' % name)
        items.append((name, '', '', name))
        continue
name 是您想为 autosummary 指令下的内容制作摘要的名称,在本例中为 "AClass.a"。但是,由于实例属性无法导入,并且 import_by_name 尝试导入该名称,因此此过程失败了。我不知道实现者为什么这样做,但我们就是这样。

如果您有时间和意愿,应该可以解决这个问题! 我已经打开了 一个问题 来跟踪它。


问题现在已经解决,但似乎存在继承的实例属性问题:https://stackoverflow.com/q/70054740/407651。 - mzjn

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