sphinxとは?
ドキュメントを作るのがめんどくさい時に利用できるツールでして。
くわしくはこっちを見てください。
この記事の目的
このsphinxってやつは結構賢くて、有るパッケージ以下を認識させると、それ以下のpythonのパッケージを読み取ってくれて、 ファイルに記述されているコメントからドキュメント生成してくれます。
今回はそのコマンドを利用する際の注意点を幾つか挙げられれば。
コマンドの利用方法
インストール
1
|
|
利用方法
1 2 3 |
|
注意点
- config.pyを書き換える
- rst記法を学ぶ
- __init__.pyが大事
- ライブラリから関数をインポートしない
- コメント内に章立てを入れない
以上の理由を軽く解説します。
1. config.pyを書き換える
プロジェクトのルートはインポートするようにしましょう。
ドキュメント生成の際に普通にモジュールをインポートしたりするので、インポートするパスを追加しておかないとドキュメントがきちんと生成されません。
1 2 3 |
|
2. rst記法
意外と面倒で、マークダウンほどのシンプルではありません。
なんだかんだ上記のページで学ぶのが一番しっかりしていて早いと思われます。
3. __init__.py大事
ディレクトリでネストしている際は__init__.pyを設置しましょう。
当たり前ですが、置かないとpythonが関連しているディレクトリとして認識されません。
4. ライブラリから関数をインポートしない
自分がハマったのですが、
1 2 |
|
上記のようにインポートするとは、インポートした関数(function)を、ドキュメント生成したい(a)モジュール内の関数だと認識し、 aというモジュールのドキュメント内に、functionのドキュメントも生成されます。
(誰得の機能なのだろうか?)
たとえばSQLAlchemyを利用している際に、ralationship関数を読み込んでいるとsphinx-apidocはrelatiohship関数のドキュメントも生成しようとします。
ただし、対象関数のコメントでエラーを吐いて正しくドキュメント生成されません。
1 2 3 4 |
|
回避方法は以下のとおり
1 2 3 4 |
|
5. コメント内に章立てを入れない
ソースコードのコメントで章立てをしないというのは、おそらく既に、モジュール名、クラス名、関数名で章立てができているので不要だからだと思います。
(はっきりと検証していないので不確かですが、)コメント内で章立てをするとエラーが出てまたしてもドキュメント生成されません。