我正在尝试使用Sphinx为大型python代码库自动创建api文档.
我尝试过使用build_modules.py和sphinx-apidoc.使用其中任何一个,我都可以在输出目录中成功创建包和顶级模块的第一个文档.
但是,当我构建使用时
make html
Run Code Online (Sandbox Code Playgroud)
它提供了数千种此类错误:
<autosummary>:None: WARNING: toctree contains reference to nonexisting document 'rstDocs/src.Example1.class1.method1'
Run Code Online (Sandbox Code Playgroud)
对于代码库中的每个类和方法.通过一些实验,我想我已经发现autosummary/autoclass指令正在创建toctrees,期望每个类和方法都有第一个文件.
除了警告之外,文档似乎运行良好,但我想摆脱它们,我想我可能错误配置了一些东西.
我也尝试过nipype/tools达到同样的效果.
我修改了apigen.py和build_modref_templates.py,为每个"缺失"文档创建了第一个存根,并使用autoclass/autofunction/automethods.但是,构建需要相当长的时间(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:
Run Code Online (Sandbox Code Playgroud)
感谢您提供有关如何解决这些问题的建议!我想远离任何涉及修改sphinx site-package文件的解决方案.