我的项目不是使用autodoc构建的。我遇到了this frequently asked question about my project not building in autodoc。但是,一些依赖项包括不能在Build the Docs服务器上执行的c代码。所以我在这个blog explaining that I should use mock中阅读了这个方法。这涉及到stackoverflow问题'如何模拟那样来自x-import-works'。
在阅读文档的管理页面的高级设置部分,有一个选项可以使用virtualenv,我检查过,然后请求我的项目根目录到requirements.txt的路径。
项目目录的结构如下:
GatherNews/
requirements.txt
当我使用“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中导入(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 < / p>
ImportError:没有名为feedparser /var/build/user_builds/gathernews/checkouts/latest/docs/_themes/README.rst的模块::警告:文档不包含在任何toctree中
我的问题是如何将这一切结合在一起?具体来说,我是否使用了我的requirements.txt的正确路径来阅读文档以成功构建?如果我的requirements.txt的路径是正确的,那么如何包含模拟包以成功生成autodoc?
答案 0 :(得分:4)
我为它创建了一个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
的路径,我能够成功构建。
这些是我使用的“高级设置”,其余设置为默认值: