web-dev-qa-db-ja.com

Sphinxを使用すると、モジュールインデックス「modindex」が生成されません

Sphinx-buildを使用してドキュメントディレクトリ(html)を作成するのに問題があります。

私は試した

sphinx-build -b html source build

と同様

make html

ただし、どちらの場合も、htmlファイルsearch.html、index.html、およびgenindex.htmlのみが生成されます。 modindex.htmlファイルがありません。

Conf.pyファイルで設定しました

html_domain_indices = True

したがって、modindex.htmlファイルが必要です。私は何が間違っているのですか? htmlファイルをビルドした後、エラーメッセージが表示されません。私はWindowsXPでSphinx1.1.3とPython 2.7を使用しています。

35
Karin

短縮版

  • 実行_sphinx-apidoc -o . mymodule_
  • コメントを外して_conf.py_を変更します。この例では、sys.path.insert(0, os.path.abspath('mymodule'))
  • 再実行_make html_

長い答え

このサンプルモジュールで問題を再現できます。

_$cat mymodule/mymodule.py
def fn1():
    '''First function'''
    pass

def fn2():
    '''Second function'''
    pass
_

_sphinx-quickstart_を実行すると、次のツリーが生成されます。

_$tree
.
├── Makefile
├── _build
├── _static
├── _templates
├── conf.py
├── index.rst
├── mymodule
    └── mymodule.py

$cat index.rst
.. sphinx example documentation master file, created by
   sphinx-quickstart on Mon Mar 30 15:28:37 2015.
   You can adapt this file completely to your liking, but it should at least
   contain the root `toctree` directive.
_

デフォルトでは_index.rst_:

_Welcome to sphinx example's documentation!
==========================================

Contents:

.. toctree::
   :maxdepth: 2



Indices and tables
==================

* :ref:`genindex`
* :ref:`modindex`
* :ref:`search`
_

この時点で_make html_を実行すると、__build/html/py-modindex.html_に出力が生成されません。これは、sphinxがすべてのモジュールを説明する.rstファイルを必要とするためです。幸い、_sphinx-apidoc -o . mymodule_を使用して簡単に作成できます。これにより、2つの新しいファイルが作成されますが、質問のmodindexの問題を修正するには、そのうち_mymodule.rst_のみが必要です。

_$head *mod*rst
==> modules.rst <==
mymodule
========

.. toctree::
   :maxdepth: 4

   mymodule

==> mymodule.rst <==
mymodule module
===============

.. automodule:: mymodule
    :members:
    :undoc-members:
    :show-inheritance:
_

この時点で_make html_を実行しても機能しません。ただし、_sys.path.insert_の_conf.py_で始まる行のコメントを外して変更すると、問題が修正されます。

私のは:sys.path.insert(0, os.path.abspath('mymodule'))

PS:追加の警告を回避するには、_Contents:_ファイルの_index.rst_ toctreeにmodulesを追加します。

30
jaimedash