Подтвердить что ты не робот

Без генерации индекса модуля "modindex" при использовании Sphinx

У меня возникли проблемы с созданием каталога документов (html) с использованием sphinx-build.

Я пробовал

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 файлов я не получаю сообщение об ошибке. Я использую Sphinx 1.1.3 и Python 2.7 в Windows XP.

4b9b3361

Ответ 1

Краткая версия

  • run 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 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. Это дает два новых файла, из которых только mymodule.rst необходим для исправления проблемы modindex в вопросе.

$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: чтобы избежать дополнительного предупреждения, добавьте modules в тег Contents: в файле index.rst.