与Sphinx无法解决文档错误

时间:2017-07-19 15:46:20

标签: python python-sphinx numpydoc

几天前我开始使用Sphinx记录python包,我得到的似乎是一个常见的错误,但我找不到解决方案。

我用sphinx-quickstart来设置一切。我使用" doc /"用于文档根位置。包含我的包的文件夹设置为:

myfolder/
    doc/
    mypackage/
        __init__.py
        moprob.py
        ...

快速启动后,我将conf.py中的路径编辑为:

import os
import sys
sys.path.insert(0, os.path.abspath('..'))

然后我将我的包中的一个脚本添加到index.rst以查看sphinx的工作原理。

 .. toctree::
   :maxdepth: 2
   :caption: Contents:

   mypackage/moprob

我得到的错误代码:

.../index.rst:9: WARNING: toctree contains reference to nonexisting document u'mypackage/moprob'

我尝试过的解决方案:

  1. 将sphinx.ext.napoleon添加到扩展名列表中,因为我的所有doc字符串都是使用numpy格式编写的。错误没有消失。我还在autodoc之后放了拿破仑扩展,因为其中一个帮助页提示了。

    extensions = [' sphinx.ext.autodoc', ' sphinx.ext.napoleon']

  2. 将numpydoc_show_class_members = False添加到conf.py.我把它直接放在扩展名下面。这也没有帮助。

  3. 文件夹位置的几种不同配置。我还尝试将根位置设置为myfolder,并将源设置为mypackage,将构建设置为doc。没有用过。

  4. 你有什么想法可以帮助我吗?

1 个答案:

答案 0 :(得分:1)

toctree指令包含对reStructuredText文档的引用,而不是Python脚本或模块。 Sphinx希望有一个 mypackage / moprob.rst 文件(在 doc 文件夹中),但是没有。因此错误。

要快速获得一些有意义的输出,请创建mypackage / moprob.rst文件。在其中添加标题和automodule指令:

moprob module
=============

.. automodule:: mypackage.moprob
   :members:

然后再次运行sphinx-build。