18

Pythonパッケージを文書化しようとしていますが、 sphinxhtmlファイルが正常に生成されました。私が文書化しているパッケージはファイルのセットで構成されており*.py、ほとんどのファイルには1つのクラスが含まれており、いくつかのファイルは関数が定義された本物のモジュールです。各クラスがモジュール内にあるという事実を公開する必要がないので、ファイルに適切なfromステートメントを追加しました。__init__.py

from base import Base

これにより、ユーザーはimport pkgコマンドを使用でき、クラスを含むモジュールを指定する必要がなくなります。

import pkg
class MyBase(pkg.Base):  # instead of pkg.base.Base ...
...

問題は、スフィンクスがクラスをとして文書化することを主張していることpkg.base.Baseです。で設定しようとしadd_module_names = Falseましたconf.py。ただし、これにより、sphinxはクラスを。Baseの代わりに単純に表示しpkg.Baseます。さらに、これモジュールであるいくつかの*.pyファイルのドキュメントも台無しにします。

sphinxクラスをとして表示するにはどうすればよいpkg.Baseですか?また、ファイルadd_module_namesごとにディレクティブを選択的に設定するにはどうすればよいですか?*.py

4

4 に答える 4

13

OPが要求することを達成する方法は次のとおりです。

  1. __all__にリストを追加pkg/__init__.py:

    from base import Base    # Or use 'from base import *'
    
    __all__ = ["Base"]
    
  2. .. automodule:: pkg.rst ファイルで使用します。

Sphinx は、クラス名がpkg.Baseではなくとして表示されるドキュメントを出力するようになりpkg.base.Baseました。

于 2015-07-23T17:43:10.320 に答える