几天前我开始使用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'
我尝试过的解决方案:
将sphinx.ext.napoleon添加到扩展名列表中,因为我的所有doc字符串都是使用numpy格式编写的。错误没有消失。我还在autodoc之后放了拿破仑扩展,因为其中一个帮助页提示了。
extensions = [' sphinx.ext.autodoc', ' sphinx.ext.napoleon']
将numpydoc_show_class_members = False添加到conf.py.我把它直接放在扩展名下面。这也没有帮助。
文件夹位置的几种不同配置。我还尝试将根位置设置为myfolder,并将源设置为mypackage,将构建设置为doc。没有用过。
你有什么想法可以帮助我吗?
答案 0 :(得分:1)
toctree指令包含对reStructuredText文档的引用,而不是Python脚本或模块。 Sphinx希望有一个 mypackage / moprob.rst 文件(在 doc 文件夹中),但是没有。因此错误。
要快速获得一些有意义的输出,请创建mypackage / moprob.rst文件。在其中添加标题和automodule指令:
moprob module
=============
.. automodule:: mypackage.moprob
:members:
然后再次运行sphinx-build。