当前位置: 首页 > 知识库问答 >
问题:

Sphinx自动摘要“目录树包含对不存在文档的引用”警告

莘翰采
2023-03-14

我正在尝试使用Sphinx为大型python代码库自动创建api文档。

我尝试过使用build_模块。py和sphinx apidoc。无论使用哪一种,我都可以在我的输出目录中为包和顶级模块成功创建rst文档。

然而,当我建立使用

make html

它给出了数千个此类错误:

<autosummary>:None: WARNING: toctree contains reference to nonexisting document 'rstDocs/src.Example1.class1.method1'

对于代码库中的每个类和方法。通过一些实验,我想我已经发现,自动摘要/自动类指令正在创建toctree,期望每个类和方法都有rst文件。

除了警告之外,文档似乎工作得很好,但我想把它们去掉,我想我可能对某些东西配置错误。

我也尝试了nipype/工具,几乎相同的效果。

我修改了apigen.py和build_modref_templates.py,为每个“丢失”的文档创建了rst存根,并酌情使用自动类/自动函数/自动符号。然而,构建需要相当长的时间(10分钟),最终由于最后一个构建步骤的内存错误而崩溃。

以下是创建所有警告的示例模块rst文件:

src Package
===========

:mod:`src` Package
------------------

.. automodule:: src.__init__
    :members:
    :undoc-members:
    :show-inheritance:

:mod:`Example1` Module
------------------------------------

.. automodule:: src.Example1
    :members:
    :undoc-members:
    :show-inheritance:

:mod:`Example2` Module
------------------

.. automodule:: src.Example2
    :members:
    :undoc-members:
    :show-inheritance:

感谢您提供有关如何解决这些警告的建议!我想远离任何涉及修改sphinx站点包文件的解决方案。

共有3个答案

翁昊乾
2023-03-14

我只是遇到了这个问题,也花了几个小时,以下为我工作:

狮身人面像可能会很挑剔,有时会对你意想不到的事情大惊小怪。例如,您可能会遇到以下情况:

WARNING: toctree contains reference to nonexisting document u'all-about-me'
...
checking consistency...
<your repository>/my-first-docs/docs/all-about-me.rst::
WARNING: document isn't included in any toctree'

很可能,这里发生的事情是您在中缩进了我的所有信息。。目录树::有四个空格,而斯芬克斯预期有三个空格。

来源:文档!

邵献
2023-03-14

如果您使用的是<代码> NUPYDOC 扩展,您可以考虑删除它并使用<代码>狮身人面像。改为ext.poleon。

从1.3版开始,Numpy和Google风格的Docstring实际上就受到这个内置扩展的支持。

移除numpydoc并使用sphinx。因此,您的conf.py中的ext.poleon可能会解决您的问题。

  • 拿破仑-朝着清晰的方向行进
常宸
2023-03-14

很抱歉这么晚的回答(如果可以考虑的话),但我找到了这个链接,讨论了可能发生在你身上的事情:

https://github.com/phn/pytpm/issues/3#issuecomment-12133978

如果您的文档代码中有一些特殊的文档刮刀,在autosummary已经运行之后正在构建autosummary文档,那么如果您仍然存在此问题,那么您可能需要研究这种想法。虽然,我不确定这会有多大帮助。

链接中的关键是添加:numpydoc\u show\u class\u members=Falseconf.py

 类似资料:
  • 如何在我的WordPress帖子中自动包含以下PHP脚本? 我不熟悉PHP,我假设上面的代码来自我用来显示社交共享按钮的插件。 我希望有人可能已经处理自动添加元素到摘录之前,会有一些代码,我可以复制到我的子主题?

  • 问题内容: 我正在使用Sphinx记录非Python项目。我想在每个子模块中分发文件夹,其中包含用于记录该模块文件的文件。然后,我想将这些文件吸收到主层次结构中,以创建整个设计的规范。 即: 我试图像这样在主文档toctree中包含文件: 但是,此错误消息导致: 警告:toctree包含对不存在的文档u’modules / module1 / docs / module1’的引用 是否无法以某种方

  • 问题内容: 我需要将父目录和其他子目录中的文件包含到子目录中。我之前只使用include(’/ rootdirectory / file.php’); 但现在看来似乎行不通。 只是想知道我该怎么做,谢谢。 这是我的确切行: 它给我这个错误(页面仍在运行): 警告: include(/forums/groups.php)[function.include]:无法打开流:C:\ xampp \ htd

  • 我在备份shell脚本的部分中有以下命令: 因此,当我解压时,文件被解压在当前目录中,之后我不需要移动被解压的文件,这样子目录结构就被保留了。 在中和web上的其他地方已经有很多关于tar和备份的问题,但大多数问题要求删除整个子目录结构(扁平化),或者只是添加或删除名称中的初始/(我不知道在提取时它到底改变了什么),而不是更多。 在阅读了这里和那里找到的一些解决方案以及手册之后,我尝试了: 但没有

  • 问题内容: 我有一个目录结构如下的项目: 我应该如何编写一个可以在part / src中(或在任何地方)的makefile来在部分c / c ++源文件中完成/链接?/ src? 我可以做一些事情-I $ projectroot / part1 / src -I $ projectroot / part1 / inc -I $ projectroot / part2 / src … 如果那行得通,

  • 问题内容: Sphinx默认情况下不会为__init __(self)生成文档。我尝试了以下方法: 和 在conf.py中,设置以下内容只会将__init __(self)文档字符串附加到类文档字符串(Sphinx autodoc文档 似乎同意这是预期的行为,但未提及我要解决的问题): 问题答案: 这是三种选择: 为了确保始终记录在文档中,可以在conf.py中使用。像这样: def setup(

  • 问题内容: 在备份Shell脚本的一部分中,我具有以下命令: 当我列出档案的内容时,我得到: 但是我想从档案中的目录和文件名中删除该部分,以简化提取过程并避免无用的常量目录结构。永远不会知道,以防万一我将备份的网站提取到Web数据未存储在的地方。 对于上面的示例,我想拥有: 因此,当我提取文件时,文件将被提取到当前目录中,而后我无需再移动提取的文件,因此子目录结构得以保留。 关于tar和在网络上以

  • 我使用boto3(aws sdk for python)来分析文档(pdf)以获得表单键:值对。 我使用Analyze Document遵循了AWS的文档,当我运行我的函数时,我得到了错误。 我错过什么了吗?