我已经开源了我的一些代码,但是尽管按照sphinx-quickstart
和make html
在本地创建的Makefile正常工作,但文档仍然无法在ReadTheDocs上正确构建。任何人都可以建议我在RTD集成方面做错了吗?
我已经阅读过关于可能使用RTD高级设置在virtualenv中构建模块但是这不起作用,因为我有scipy作为要求并且由于没有BLAS库可用而构建失败(它也是不必要的每个文档版本的长任务。)
sphinx.ext.autodoc和sphinx.ext.napoleon(适用于Google风格的文档字符串)都包括在内。在本地,我刚刚运行dev-scripts/api-docs.sh
一次创建了docs/source/bnol.rst
和docs/source/modules.rst
。然后使用标准Makefile(在git repo中忽略)按预期构建文档。
编辑:我发现了这个FAQ detailing the build process on RTD并在本地使用了与sphinx-build
相同的过程,它按预期工作。我正在拖拽RTD日志以查找错误,但尚未注意到。
答案 0 :(得分:3)
使用Sphinx autodoc从docstring comments创建文档需要加载Python文件,因此导入的所有模块也将被导入。 ReadTheDocs将构建所需的模块,特别是在numpy
和scipy
的情况下,可能会失败。
我通过从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中找到完整的更改列表。