使用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文件后,我没有收到任何错误消息。我在Windows XP上使用Sphinx 1.1.3和Python 2.7。
答案 0 :(得分:26)
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
需要描述每个模块的第一个文件。幸运的是,使用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
toctree。
答案 1 :(得分:0)
古老的问题,但是“在硬盘驱动器上工作而不在ReadTheDocs上工作”通常可以轻松解决。