25

作業中のPythonモジュールとクラスを文書化するためにSphinxをインストールしました。マークアップ言語は非常に見栄えがしますが、Pythonコードを自動文書化することはできませんでした。

基本的に、私は次のPythonモジュールを持っています:

SegLib.py

そしてそれに呼ばれるクラスSeg。生成されたSphinxドキュメント内のクラスとモジュールのドキュメント文字列を表示し、さらにフォーマットされたテキストを追加したいと思います。

index.rstはこのように見えます:

Contents:

.. toctree::
:maxdepth: 2

chapter1.rst

およびchapter1.rst

This is a header
================
Some text, *italic text*, **bold text**

* bulleted list.  There needs to be a space right after the "*"
* item 2

.. note::
   This is a note.

See :class:`Seg`

ただしSeg、太字で印刷されているだけで、クラスの自動生成されたドキュメントにはリンクされていません。

次のことも役に立ちませんでした。

See :class:`Seg`
Module :mod:'SegLib'
Module :mod:'SegLib.py'

編集:SegLibをセグメントに変更し(ありがとう、iElectric!)、chapter1.rstを次のように変更しました:

The :mod:`segments` Module
--------------------------

.. automodule:: segments.segments

.. autoclass:: segments.segments.Seg

それでも、Sphinxにクラス内の関数を直接ドキュメント化させることはできません。つまり、クラス内のすべての関数をドキュメントに自動的に追加することはできません。試した:

.. autofunction:: segments.segments.Seg.sid

そして得た:

autodoc can't import/find function 'segments.segments.Seg.sid', it reported error: "No module named Seg"

短いコマンドで関数とクラスを自動文書化する方法はありますか?

4

1 に答える 1

18

ファイルの先頭に追加します。

.. module:: SegLib

:autoclass:クラスdocにディレクティブを使用してみてください。

ところで:モジュール名は小文字でなければなりません。

編集: 私は他のソースファイルを読むことから多くを学びました

于 2009-08-25T08:41:23.580 に答える