【问题标题】:How can I get Sphinx autosummary to display the docs for an instance attributes?如何让 Sphinx 自动摘要显示实例属性的文档?
【发布时间】:2015-07-06 07:17:51
【问题描述】:

所有其他类型(类、属性、方法等)都可以正常工作,但是当自动汇总获取实例属性时,它会引发“WARNING: failed to import AClass.a”错误。奇怪的是表格是用下面的自动文档代码文档的链接绘制的,但文档摘要列是空的。

有没有人有这个工作,或者有什么想法可能是错的?

显示带有链接但没有文档的表格:

表明 autodoc 正在运行(没有它,上面的链接将无法实现):

我也尝试过其他形式的文档,例如#: ... 样式等。结果都一样。同样,同一模块中的其他所有内容都可以正常工作。我确实在方法等的自动摘要表中看到了文档。

示例类:

class AClass(object):
    def __init__(self):
        self.a = 10
        """
        An example instance attribute

        :type: int
        """

ReST 示例:

.. autosummary::

    AClass.a

我使用的是 Sphinx 1.2.3

【问题讨论】:

    标签: python python-sphinx


    【解决方案1】:

    不幸的是,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 尝试导入名称,因此失败。我不知道为什么实施者会这样做,但我们开始了。

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-06-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-24
    • 2021-11-10
    相关资源
    最近更新 更多