相关疑难解决方法(0)

Sphinx autodoc不够自动化

我正在尝试使用Sphinx来记录Python中的5000多行项目.它有大约7个基本模块.据我所知,为了使用autodoc我需要为我的项目中的每个文件编写这样的代码:

.. automodule:: mods.set.tests
    :members:
    :show-inheritance:
Run Code Online (Sandbox Code Playgroud)

这太繁琐了,因为我有很多文件.如果我能指定我想要记录'mods'包,那将会容易得多.然后,Sphinx可以递归地遍历包并为每个子模块创建一个页面.

有这样的功能吗?如果没有,我可以写一个脚本来制作所有的.rst文件,但这会花费很多时间.

python python-sphinx

139
推荐指数
5
解决办法
4万
查看次数

在Sphinx中自动为自动doc类创建toctree

我正在寻找增加我的一个库中的文档.我一直在使用sphinx来帮助构建文档,最近开始探索autodoc扩展.

在大多数专业文档中,每个类文档页面都有一个列表,其中包含顶部链接的所有记录方法.或者,换句话说,顶部的toctree具有到每个更深入的方法文档的超链接.

有没有办法为autodoc记录的每个类自动创建此toctree?

python python-sphinx autodoc

14
推荐指数
1
解决办法
3078
查看次数

狮身人面像:让课程出现在TOC上

我开始使用ext.autodoc记录一些python类.我有几个带有内容的*.rst文件

========
mymodule
========

.. automodule:: mymodule
   .. autoclass:: myclassA
       :members:
   .. autoclass:: myclassB
       :members:
Run Code Online (Sandbox Code Playgroud)

加上一个index.rst:

.. toctree::
   :maxdepth: 2
   mymodule
Run Code Online (Sandbox Code Playgroud)

'mymodule'显示在目录中,但我也想看看TOC中的类:

  • MyModule的
    • myclassA
    • myclassB

我如何让sphinx为每个类创建一个类似的部分?或者有充分的理由不这样做吗?

谢谢

python-sphinx

10
推荐指数
1
解决办法
1752
查看次数

使用 toctree 进行自动摘要不会为方法创建文档

我正在使用带有 numpydoc 扩展和自动摘要的 sphinx。经过一些实验,我将以下选项添加到我的 conf.py 文件中。

autosummary_generate = True
numpydoc_show_class_members = False
Run Code Online (Sandbox Code Playgroud)

这为我引用的每个类提供了一个新文件,如下所示,它还创建了所有属性和方法的汇总表。

.. autosummary::
   :toctree: generated/
   :nosignatures:

   MyClass
Run Code Online (Sandbox Code Playgroud)

问题是,虽然文档字符串的第一行有一个方法的摘要表,但方法的名称没有链接到任何内容。如何获取方法的文档字符串来创建自己的文件(或者至少在与类相同的文件中生成文档)?

python python-sphinx autodoc numpydoc toctree

7
推荐指数
1
解决办法
4788
查看次数

使用Sphinx为每个函数自动生成单独的文档

我一直在构建一个具有许多不同功能的Python模块.

我正在使用Sphinx和readthedocs来提供文档.我已经取得了不错的进展,但目前我有一个庞大的页面,提供了我所有功能的文档(按字母顺序排列).

我查看了其他项目,每个项目都有一个单独的页面.通过查看源代码,我发现为每个文件创建了一个单独的.rst文件.我假设这是自动完成的,这个关于生成autodoc摘要的页面似乎正在描述其中的一些,但我无法理解它.

sphinx-apidoc 有一个选项(-e)为每个模块创建一个页面,但我想为每个函数创建一个页面.

如何使用Sphinx为每个函数自动生成单独的页面?


附加信息

要为下面的其中一个答案添加信息,我将以下内容放入我的EoN.rst文件中,该文件位于子目录中docs.

EON documentation
=================

.. automodule:: ../EoN
   :members:

.. currentmodule:: ../EoN

.. autosummary::
   :toctree: functions

   fast_SIR
   fast_SIS
Run Code Online (Sandbox Code Playgroud)

我收到错误消息

$ sphinx-autogen -o docs/generated docs/*.rst
Run Code Online (Sandbox Code Playgroud)

[autosummary]生成autosummary:docs/index.rst,docs/methods.rst,docs/quickstart.rst

[autosummary]写入docs/generated

警告:[autosummary]无法导入u'fast_SIR':没有名为fast_SIR的模块

警告:[autosummary]无法导入u'fast_SIS':没有名为fast_SIS的模块

fast_SISfast_SIR坐在里面../EoN.py

python python-sphinx read-the-docs

7
推荐指数
2
解决办法
2669
查看次数

如何让 Sphinx 自动摘要为类生成完整的 API 文档,以及为这些类生成*汇总表*?

我确定这是一个或另一个级别的用户错误,但我在这里慢慢发疯并且非常感谢一些帮助。

我已经sphinx-apidoc让优秀的第三方和优秀的第三方sphinx-autoapi工作,但不能重复使用sphinx.ext.autosummary. 这让我发疯......加上这些选项都没有给你真正整洁的包/模块成员汇总表,它们(大概)是sphinx.ext.autosummary.

我有一个非常简单的项目:

|_ TEST
   |_ docs
      |_ conf.py
      |_ index.rst
   |_ myproject
      |_ __init__.py
      |_ mymodule.py
Run Code Online (Sandbox Code Playgroud)

conf.py 看起来像这样:

|_ TEST
   |_ docs
      |_ conf.py
      |_ index.rst
   |_ myproject
      |_ __init__.py
      |_ mymodule.py
Run Code Online (Sandbox Code Playgroud)

index.rst 看起来像这样:

.. autosummary::
   :toctree: _autosummary

   myproject.mymodule
Run Code Online (Sandbox Code Playgroud)

mymodule.py 看起来像这样:

import os
import sys
sys.path.insert(0, os.path.abspath('../../myproject'))

extensions = [
    'sphinx.ext.autodoc',
    'sphinx.ext.autosummary'
]

autosummary_generate = True
Run Code Online (Sandbox Code Playgroud)

make html从该docs目录运行使这个可爱的 Readthedocs 风格的 HTML:

(见图)

我想要做的是单击TestClass汇总表中的函数并访问一个新页面,该页面显示了该类的完整 API 文档。我怎样才能做到这一点?

(还是我错过了点,我必须结合 …

python python-sphinx

6
推荐指数
1
解决办法
963
查看次数