2009-08-25 13 views
20

私はSphinxをインストールして、いくつかのPythonモジュールとそのクラスを文書化しました。マークアップ言語はとてもよく見えますが、私はPythonコードを自動文書化することはできませんでした。sphinxを使ってPythonクラスの自動文書化

SegLib.py 

そして、それにSegと呼ばれるクラス:

基本的に、私は次のPythonモジュールを持っています。私は生成されたスフィンクス文書内にクラスとモジュールのドキュメントストリングを表示し、さらにそれにフォーマットされたテキストを追加したいと思います。

マイ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はちょうど太字で印刷され、クラスの自動生成されたドキュメントにリンクされていません。 を参照してください::クラス:Seg モジュール:MOD: 'SegLib' モジュール:MOD:しようと

'SegLib.py'

も、助けにはなりませんでした。 アイデアや良いチュートリアルのリンクはありますか?

編集:---------------- segmentsモジュール :セグメント(!おかげで、iElectric)にSegLibを変更し、にchapter1.rst変更: :MOD ----------

.. automodule:: segments.segments 

.. autoclass:: segments.segments.Seg 

それでも、直接クラス内の機能を文書化するためにスフィンクスを得ることができない、またはより良い - 自動的に文書へのクラス内のすべての機能を追加します。短いコマンドで関数やクラスをautodocumentする方法任意のアイデアを

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

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

を試してみましたが、得ましたか。

のUdi

+0

あなたの '.. automodule ::'と '.. autoclass ::'ディレクティブはどこにありますか?あなたがこれらを置く場所を示してください。 –

+1

私は、文書化しようとしているモジュール/パッケージがsphinx、つまりpythonの検索パスで読み込み可能であることを確認する必要があります。 – codeape

+1

あなたは本当にhttp://sphinx.pocoo.org/ext/autodoc.htmlを読むべきです。すべてを読んで、あなたのすべての質問に答えます。メンバの場合は、autoclassディレクティブの後にmembers:toを追加します。 – iElectric

答えて

12

は、ファイルの初めに追加:

​​

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

BTW:モジュール名はlower_caseである必要があります。

編集:I learned a lot from reading other source files

+0

thanks_but_in_which_file_should_i_put_the_directives :-)? –

+0

index.rstには、初心者向けです。ドキュメントが大きくなると、複数のファイルに分割されます。 – iElectric

+0

リンクが壊れています。 –

関連する問題