ここでは、Pythonコード内のドックストリングから自動的にHTMLドキュメントを生成することを想定しています。
ドックストリングの書き方については下記のページで解説しています。
Pythonのドックストリング(docstring)の書き方
前提条件
- Pythonがインストール済みであること(Python 3.x系を推奨)。
- コマンドラインで
python
、pip
などの基本コマンドが使えること。
手順
仮想環境の作成(任意)
プロジェクトを管理しやすくするため、仮想環境(venv)を使うことをおすすめします。
(既に仮想環境を使っている場合、このステップは不要です)
python -m venv venv
source venv/bin/activate # Linux/Mac
venv\Scripts\activate # Windows
Sphinxのインストール
pip
を使ってSphinxをインストールします。
pip install sphinx
ドキュメント用ディレクトリの作成
プロジェクトのルートディレクトリで、ドキュメント用のディレクトリ(例: docs
)を作成します。
mkdir docs
cd docs
sphinx-quickstartを実行
docs
ディレクトリ内で以下を実行します。対話形式でドキュメントプロジェクトの初期設定が行われ、conf.py
やindex.rst
などの基本ファイルが生成されます。
sphinx-quickstart
主な質問事項と回答例:
- Project name: (プロジェクト名を入力) 例:
MyProject
- Author name(s): (作者名)
- Project release: (バージョン) 例:
1.0
- Docstring:
Separate source and build directories
と聞かれた場合、y
と答えるとsource
ディレクトリとbuild
ディレクトリが分かれます。(初学者にはこちらを推奨)
ここで作られる主なファイルは以下の通りです:
conf.py
: Sphinxの設定ファイルindex.rst
: ドキュメントの目次ファイル
autodoc拡張の有効化(コードからドキュメントを生成する場合)
conf.py
を開き、extensions
リストに"sphinx.ext.autodoc"
を追加します。
extensions = [
'sphinx.ext.autodoc',
]
また、NumPyスタイルやGoogleスタイルのドックストリングを利用している場合は、対応する拡張機能(numpydoc
など)を導入することもできます。
pip install numpydoc
そしてconf.py
にも追加:
extensions = [
'sphinx.ext.autodoc',
'numpydoc',
]
対象モジュールのパスを通す
conf.py
で、Sphinxがドキュメント化対象のPythonコードを読み込めるよう、プロジェクトのパスを設定します。例えば、source
ディレクトリ配下にソースコードがある場合:
import os
import sys
sys.path.insert(0, os.path.abspath('../..')) # プロジェクトルートへのパスを追加
自分のプロジェクト構成に合わせてパスを修正してください。
rstファイルやautodoc指令を追加
index.rst
や別の.rst
ファイルに、autodoc
ディレクティブを使ってモジュールやクラス、関数をドキュメント化します。
.. automodule:: mymodule
:members:
たとえばmymodule
というPythonモジュール(mymodule.py
)がプロジェクト内にある場合、上記のような記述で、そのモジュール内のクラスや関数のドックストリングがドキュメント化されます。
index.rst
からリンクを追加するなど、SphinxのreStructuredTextの基本的な書き方に慣れていくとよいでしょう。
ドキュメントのビルド
準備ができたら、docs
ディレクトリ(makefile
があるディレクトリ)で以下を実行します:
- HTMLドキュメントの生成
make html
ビルドが完了すると、_build/html
ディレクトリ下にHTMLドキュメントが生成されます。index.html
をブラウザで開くと確認できます。
ドキュメントの更新
コードやドックストリング、rst
ファイルを修正したら、再度make html
を実行することで、更新されたドキュメントを再生成できます。
よくある質問・トラブルシューティング
自動ドキュメント生成でクラスや関数が表示されない場合
conf.py
のパス設定やautodoc
の拡張が有効か確認してください。また、モジュールの場所を正しく指定し、automodule
ディレクティブを使用しているか確認します。
テーマを変えたい場合
pip install sphinx_rtd_theme
などでテーマをインストールし、conf.py
でhtml_theme = 'sphinx_rtd_theme'
のように設定することで見た目を変更できます。
公式のテーマ一覧:https://www.sphinx-doc.org/en/master/usage/theming.html#builtin-themes
非公式のテーマギャラリー:https://sphinx-themes.org/
まとめ
pip install sphinx
でインストールsphinx-quickstart
で初期設定ファイルを生成conf.py
でautodoc
などの拡張機能を有効化make html
でHTMLドキュメント生成- 生成された
_build/html/index.html
をブラウザで閲覧
以上がSphinxを初めて使う人向けの基本的な流れです。最初は最小限の設定で動かし、徐々にテーマ変更や拡張導入などステップアップしていくとよいでしょう。