Python Sphinx 警告:定义列表结束时没有空行;意外的未缩进

Den*_*sLi 15 python python-sphinx

我的医生是这样的:

\n\n
    def segments(self, start_time=1, end_time=9223372036854775806, offset=0, size=20):\n        """Get segments of the model\n\n        :parameter\n            offset: - optional int\n            size: - optional int\n            start_time: - optional string\xef\xbc\x8cSegments \n            end_time: - optional string\xef\xbc\x8cSegments \n        :return: Segments Object\n        """\n
Run Code Online (Sandbox Code Playgroud)\n\n

当我制作html时,结果是:

\n\n
 WARNING: Definition list ends without a blank line; unexpected unindent.\n
Run Code Online (Sandbox Code Playgroud)\n\n

我不知道应该在哪里添加空行?

\n\n

我搜索过,但找不到与我类似的案例。

\n

Cod*_*inz 8

jonrsharpe已经在评论中回答了这个问题,但我想在这里完成它。

\n

您正在使用默认的 Sphinx 样式“reStructuredText”

\n

您必须在每一行添加“:参数”:

\n
    """Get segments of the model\n    \n    :parameter offset: optional int\n    :parameter size: optional int\n    :parameter start_time: optional string\xef\xbc\x8cSegments \n    :parameter end_time: optional string\xef\xbc\x8cSegments \n    :return: Segments Object\n    """\n
Run Code Online (Sandbox Code Playgroud)\n

如果您创建了专用定义列表,则在最后一个定义之后需要一个空行。在这种情况下,您可以这样做,但并不总是必须这样做。

\n

  • 我想我不是唯一一个每当遇到 RST/Sphinx 的疯狂限制和符文语法时就会咒骂的人。例如,如果你做了一些像缩进一行并在其中包含连字符这样简单的事情,它就会发出嘎嘎声。它非常关注(不可见的)空白。官方文档提及定义在术语表下列出,但没有解释语法的条目。几乎所有 MD 都不太优雅,但更容易做到正确。 (6认同)

Pet*_*cka 5

我有相同的错误消息,但问题略有不同。我有一个多行参数描述。

    """Get segments of the model
    
    :parameter offset: optional int and this was very long 
    description of the parameter. Which runs over
    multiple lines.
    :return: Segments Object
    """
Run Code Online (Sandbox Code Playgroud)

为了解决这个问题,我必须为描述中的每一行添加缩进。最终代码如下所示:

    """Get segments of the model
    
    :parameter offset: optional int and this was a very long 
        description of the parameter. Which runs over
        multiple lines.
    :return: Segments Object
    """
Run Code Online (Sandbox Code Playgroud)

另一个令人困惑的方面是该错误没有引用真正的问题,而是引用了文件的第一个函数。