如何设置“阅读文档”以使 Sphinx autodoc 选项起作用?

Tyl*_*ler 4 python git documentation mocking documentation-generation

我的项目不是使用 autodoc 构建的。我遇到了有关我的项目未在 autodoc 中构建的常见问题。但是,某些依赖项包含不会在构建文档服务器上执行的 C 代码。因此,我阅读了此博客中的方法,解释我应该使用模拟。这与 stackoverflow 问题“how-to-mock-so-that-from-x-import-works”相关。

在阅读文档的管理页面的高级设置部分中,有一个使用 virtualenv 的选项,我检查了该选项,然后请求了我的项目根目录到requirements.txt的路径。

项目目录结构如下:

GatherNews/
    requirements.txt
Run Code Online (Sandbox Code Playgroud)

当我用作GatherNews/requirements.txt路径时。我收到错误:

/var/build/user_builds/gathernews/checkouts/latest/docs/api/grss.rst:10:警告:autodoc:无法从模块 u'gathernews.gRSS' 导入类 u'CaptureFeeds';提出了以下例外情况:

回溯(最近一次调用最后一次):

文件“/home/docs/checkouts/readthedocs.org/user_builds/gathernews/envs/latest/local/lib/python2.7/site-packages/sphinx/ext/autodoc.py”,第 335 行,在 import_object import (self .modname)

文件“/home/docs/checkouts/readthedocs.org/user_builds/gathernews/envs/latest/local/lib/python2.7/site-packages/gathernews/ init .py”,第 1 行,导入 gRSS

文件“/home/docs/checkouts/readthedocs.org/user_builds/gathernews/envs/latest/local/lib/python2.7/site-packages/gathernews/gRSS.py”,第 38 行,导入 feedparser

ImportError:没有名为 feedparser /var/build/user_builds/gathernews/checkouts/latest/docs/_themes/README.rst:: 警告:文档不包含在任何目录树中

我的问题是如何将这一切联系在一起?具体来说,我是否使用正确的路径来requirements.txt阅读文档以成功构建?如果我的路径requirements.txt正确,那么如何包含模拟包以成功生成自动文档?

Luk*_*raf 5

我创建了一个https://github.com/Bonza-Times/GatherNews的分支,并为其构建了一组 ReadTheDocs 版本。唯一的问题似乎是您使用了错误的路径requirements.txt。它说

从项目根目录开始的路径。

所以这不包括GatherNews. 只需用作requirements.txt路径,因为该文件位于 git 存储库的顶层。

既然您已经Use virtualenv检查过了,ReadTheDocs 应该会自动确保 virtualenv 的站点包可用于sys.path脚本sphinx-build

我认为不需要模拟模块,因为feedparser对 C 库没有任何硬依赖。它可以针对 libxml2 构建,但并非必须如此。

通过修复路径,requirements.txt我能够成功构建。

这些是我使用的“高级设置”,其余设置为默认值:

高级设置