如何在不使用自动模块的情况下使sphinx.ext.viewcode工作

时间:2016-04-06 14:27:46

标签: python python-sphinx

的Bonjour,

我有一个python模块' example_doc'与'MyObj'在其中,我试图使用sphinx进行记录。当我使用' autodoc'和autoclass指令:

.. autoclass:: testdoc.example_doc.MyObj

它生成带有对象描述的正确页面,因为我使用了' viewcode' sphinx扩展,我得到了源代码的链接。

但是当我尝试直接使用class指令重现结果时:

.. class:: testdoc.example_doc.MyObj

我没有获得源代码的链接。

编辑: 我使用最新版本的sphinx作为conda,即sphinx 1.3.5和 我只是拥有' sphinx.ext.autodoc'和' sphinx.ext.viewcode'作为我的conf.py中的扩展。

使用的代码:

Source link
===========

autodoc below

.. autoclass:: testdoc.example_doc.MyObj

class below

.. class:: testdoc.example_doc.MyObj

结果:

sphinx doc html for viewcode test

1 个答案:

答案 0 :(得分:0)

我有同样的问题。在viewcode扩展中进行了一些调试以弄清楚使用autodoc和手动声明之间的区别之后,我发现可以通过在所有类之前分别声明模块来使其工作。

也就是说,不要这样做:

Page title
==========

Introductory text goes here

.. class:: testdoc.example_doc.MyObj

    Bla bla bla, example documentation for the first class

.. class:: testdoc.example_doc.MySecondObj

    Bla bla bla, example documentation for the second class

执行以下操作:

Page title
==========

Introductory text goes here

.. module:: testdoc.example_doc

.. class:: MyObj

    Bla bla bla, example documentation for the first class

.. class:: MySecondObj

    Bla bla bla, example documentation for the second class

我不确定这是错误还是预期的行为,但是无论哪种方式,显式声明模块都会使[source]链接对我显示。