阅读文档集成¶
与ReadtheDocs集成¶
在GitHub上设置服务¶
进入Github上项目的管理页面。
转到项目的“设置”页
单击左侧的“集成与服务”
在“服务”部分中,单击“添加服务”
在可用服务列表中,单击“readthedocs”
勾选“激活”
点击“添加服务”
在“读取文档”中导入项目¶
登录阅读文档并单击“导入项目”。
如果项目不在列表中,请选择手动导入:
在GitHub中,将https克隆URL复制到剪贴板:
返回“读取文档”,将URL粘贴到“存储库URL字段”,并填写项目名称:
外部模块依赖项的AutoDoc修复¶
阅读文档在其环境中针对您的代码运行sphinx autodoc。因此,虽然autodoc可能在您自己的环境中运行良好,但由于导入的模块不存在,它可能在readthedocs中失败。
导入问题示例¶
在阅读文档时,我们可以看到示例模块,但不能看到示例模块2
我们检查了构建,它通过了。有什么问题?
点击阅读构建第4行的文档管理界面,我们看到:
进一步降低输出:
正确的。它失败了,因为colouredlogs模块没有安装在read the docs中。
如果这是一个问题,有几种方法可以解决这个问题。第一个更好:
使用virtualenv修复缺少的导入¶
在这个修复中,我们告诉readthedocs在虚拟环境中通过pip安装模块依赖项,然后运行sphinx autodoc。
在读取文档时启用virtualenv¶
登录阅读文档并进入设置->配置文件-><项目名称>
进入“管理”->“高级设置”并勾选“使用setup.py安装在virtualenv中安装项目”框。
在“requirements file:”框中填写requirements.txt
单击“提交”
用模拟修复丢失的导入¶
如果virtualenv解决方案不能完全从您那里工作,那么考虑使用mock。代码可以添加到docs/source/conf.py来模拟麻烦的导入,这样读取docs sphinx就不会在尝试加载它们时出错。
子模块必须列在其父模块之后,并且必须有来自顶层模块的完整列表。模拟ryu.base.app_manager的示例:
import mock
MOCK_MODULES = [
'ryu',
'ryu.base',
'ryu.base.app_manager']
for mod_name in MOCK_MODULES:
sys.modules[mod_name] = mock.Mock()