ReadTheDocs不解析Python模块中的文档字符串(Sphinx)

时间:2016-04-17 14:57:07

标签: python-sphinx read-the-docs

我已经开源了我的一些代码,但是尽管按照sphinx-quickstartmake html在本地创建的Makefile正常工作,但文档仍然无法在ReadTheDocs上正确构建。任何人都可以建议我在RTD集成方面做错了吗?

我已经阅读过关于可能使用RTD高级设置在virtualenv中构建模块但是这不起作用,因为我有scipy作为要求并且由于没有BLAS库可用而构建失败(它也是不必要的每个文档版本的长任务。)

sphinx.ext.autodoc和sphinx.ext.napoleon(适用于Google风格的文档字符串)都包括在内。在本地,我刚刚运行dev-scripts/api-docs.sh一次创建了docs/source/bnol.rstdocs/source/modules.rst。然后使用标准Makefile(在git repo中忽略)按预期构建文档。

编辑:我发现了这个FAQ detailing the build process on RTD并在本地使用了与sphinx-build相同的过程,它按预期工作。我正在拖拽RTD日志以查找错误,但尚未注意到。

1 个答案:

答案 0 :(得分:3)

使用Sphinx autodocdocstring comments创建文档需要加载Python文件,因此导入的所有模块也将被导入。 ReadTheDocs将构建所需的模块,特别是在numpyscipy的情况下,可能会失败。

我通过从setup.py删除模块并将其列在程序包根目录中的 pip 需求文件./requirements.txt中以便在实际程序包安装中使用来更正此问题。然后将一个虚拟(空)需求文件放在./docs/source/中并指向ReadTheDocs配置(即使未指定,它似乎也会自动加载./requirements.txt,因此需要虚拟)。

这仍然存在导入使用mock修复的模块的问题,如我的./docs/source/conf.py文件中所示,详细信息如下: http://blog.rtwilson.com/how-to-make-your-sphinx-documentation-compile-with-readthedocs-when-youre-using-numpy-and-scipy/

可以在commit that solved the problem中找到完整的更改列表。