Sphinx autodoc没有导入任何东西?

时间:2014-07-23 08:23:55

标签: python python-sphinx autodoc

我尝试使用sphinx(与autodocnumpydoc一起)来记录我的模块,但在基本设置之后,运行make html会产生只是包含docstrings的基本html。我正在运行Python 3.3,项目结构的大纲如下:

Kineticlib
|--docs
|  |--build
|  |--source
|  |  |--conf.py
|--src
|  |--kineticmulti
|  |  |--__init__.py
|  |  |--file1.py
|  |  |--file2.py
|--setup.py

__init__.py为空,在conf.py目录的docs/source我已添加sys.path.insert(0, os.path.abspath('../..'))

make html目录中运行docs会得到以下输出:

sphinx-build -b html -d build/doctrees   source build/html
Running Sphinx v1.2.2
loading pickled environment... done
building [html]: targets for 0 source files that are out of date
updating environment: 0 added, 0 changed, 0 removed
looking for now-outdated files... none found
no targets are out of date.

Build finished. The HTML pages are in build/html.

那么,我做错了什么?

2 个答案:

答案 0 :(得分:5)

您是否在docs / source目录中运行了sphinx-apidoc?这将生成用于制作html的.rst文件。来自man sphinx-apidoc

sphinx-apidoc [options] -o <outputdir> <sourcedir> [pathnames ...]

您需要(至少)包含outputdir(.rst文件将去,./应该有效)和应该指向您的包裹的sourcedir(看起来像../../src/kineticmulti应该工作)

答案 1 :(得分:0)

正如您所说的,您应该这样做:

sphinx-apidoc [options] -o <outputdir> <sourcedir> [pathnames ...]

有时还需要修改conf.py以导入一些源模块。以及在类中添加一些文档以加载其方法文档(仅对私有分类适用,但我坚持这样做)。