我现在正好遇到了本期中描述的问题:https://github.com/sphinx-doc/sphinx/issues/7734。该期还提供了 MWE。
我的问题是修复程序似乎没有默认激活。在源代码中,我发现配置中名为
strip_signature_backslash
的设置必须设置为 True 才能激活修复。
我已经尝试过:
napoleon_strip_signature_backslash = True
autodoc_strip_signature_backslash = True
strip_signature_backslash = True
全部位于conf.py的底部,但似乎没有一个激活此设置。我已经用谷歌搜索了大约一个小时,但我找不到任何关于如何设置它的文档。该设置也出现在
ext/autodoc/__init__.py
和 directives/__init__.py
中,但正如我所说,我不知道如何设置它。
有什么建议吗?
我实际上想通了尝试创建一个合适的 MWE。导致错误的原因实际上不是这里指出的问题https://github.com/sphinx-doc/sphinx/issues/7734,而是我在文档中写了未转义的反斜杠。
但是我注意到,即使没有抛出错误,默认配置也会删除名称以 _ 结尾的函数参数。
例如
def f(self, p_):
"""
Args:
p_: hei
Returns:
"""
pass
为了解决这个问题,您实际上必须在
strip_signature_backslash = True
文件的底部设置 conf.py
。它激活拉请求中指出的修复。
如果没有这个错误,我可能永远不会注意到这一点。
再次感谢您这么快回复我@mzjn 和@steve-piercy