32
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Sphinx でPythonのAPIドキュメントを自動作成

Posted at

Sphinx でPythonのAPIドキュメント作成

プログラムを作りながら、自分が作っているクラスのAPIドキュメントが見られたら便利
ということで、Sphinxを使ってPythonモジュールのAPIドキュメントを自動作成・閲覧する方法をまとめました。

環境

Linux(今回はCentOS 6.6でやりました)
Python 2.7 (pipインストール済み)

Sphinxを入れる

Sphinxとは、ドキュメント作成ツールです。(ちなみに、Pythonで書かれています。)
要するに、「知的で美しいドキュメント」が簡単に作れるようになるツールです。
参考: http://docs.sphinx-users.jp/

pipがあれば、簡単にインストール可能です。

$ pip install sphinx

APIドキュメントを自動生成する準備をする

私は、以下のようなディレクトリ構成でやりました。

- project # Pythonプロジェクト
   |
   |- src # APIドキュメントを自動生成したいPythonコードのディレクトリ
   |   |- __init__.pyとか
   |   |- hoge # サブモジュールとか
   |
   |- docs # Sphinxプロジェクトのディレクトリ

docsディレクトリにAPIドキュメント用のSphinxプロジェクトを作成します。
これはコマンド一発で作成可能です。

$ cd project
$ sphinx-apidoc -F -o docs/ src/

sphinx-apidocコマンドの「-o」オプションにSphinxプロジェクトを作成するディレクトリを、最後の引数に、APIドキュメントを生成したいPythonソースのディレクトリを指定します。
(「-F」オプションは、フル機能?のSphinxプロジェクトを作成するというオプションみたいです。とりあえず、つけておきます。)

これで、srcディレクトリ配下のPythonソースからAPIドキュメントを生成する準備が整いました。(早

自分が作ったPythonソースからAPIドキュメントを作成する。

docsディレクトリに入って、makeコマンドを実行します。

$ cd docs
$ make html

これで、PythonソースからAPIドキュメントが作成されます。
※dotstiringでコメントを書いておけば、それも反映されます。

ちなみに、ソースコードを更新したら
再度、「make html」をすれば、最新のAPIドキュメントになります。

APIドキュメントを見る

docs/_build/html
配下に、HTMLファイルができています。
「index.html」がホームとなるページです。

ローカルで見れるなら、これをブラウザで開きましょう。

リモートのVMでGUIなんてないんじゃい!という人は

$ cd _build/html
$ python -m SimpleHTTPServer

で、簡易Webサーバ立てれば、リモートからみられると思います。
簡易だけあってキャッシュとか無いようなので、
HTMLファイル更新(make html)→ブラウザ更新(F5)
で最新の情報が見られました。

参考

書いている途中で見つけてしまった。

より詳細が知りたい方は↑を見てください。

32
39
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
32
39

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?