我有一个项目(https://github.com/jfkominsky/PyHab),它实际上是PsychoPy(http://psychopy.org/)的扩展。我想将Sphinx和ReadTheDocs用于代码文档。我将Sphinx的autoclass功能用于我的文档,并且大部分功能都在代码本身中,这在本地构建中效果很好。在ReadTheDocs上,这意味着我需要添加带有心理要求的要求文件。这会导致构建以下列方式失败:
/home/docs/checkouts/readthedocs.org/user_builds/pyhab/envs/latest/bin/pip install --exists-action=w --cache-dir /home/docs/checkouts/readthedocs.org/user_builds/pyhab/.cache/pip -rdocs/requirements.txt
Command killed due to excessive memory consumption
我对此非常业余。有没有一种方法可以使用setup.py虚拟环境来使心理正常工作? readthedocs是否对内存太小气?我注意到Psychopy本身目前在RTD构建方面存在一些问题,不确定是否与之相关...
编辑:我应该补充,我在RTD中使用Cpython2作为我的环境。当我改用CPython3时,会遇到另一个失败:
我再次尝试使用Py3,但遇到了另一个错误:
错误:构建wxWidgets失败 追溯(最近一次通话): 文件“ build.py”,行1321,在cmd_build_wx中 wxbuild.main(wxDir(),build_options) 主文件374行中的文件“ /tmp/pip-build-7a1lqn7v/wxPython/buildtools/build_wxwidgets.py” “运行配置时出错”) 在exitIfError中,文件“ /tmp/pip-build-7a1lqn7v/wxPython/buildtools/build_wxwidgets.py”,第85行 引发builder.BuildError(msg) buildtools.builder.BuildError:运行配置错误 完成的命令:build_wx(0m10.842s) 完成的命令:构建(0m10.842s) 命令““ /home/docs/checkouts/readthedocs.org/user_builds/pyhab/envs/latest/bin/python” -u build.py build“失败,退出代码为1。
答案 0 :(得分:0)
我至少为CPython2.x设计了一个解决方案。 RTD需要更好地宣传它的长处和短处是,您可以在conf.py中放入一堆“小样”,以绕过您不想在编译文档时实际导入的模块。您需要在2.7中的需求文件中模拟(可能在3.x中是unittest.mock)
中又有何联系?我意识到您可以为几乎所有内容创建模拟模块,如果使用MagicMock,则可以根据需要向其添加属性。我花了几次尝试来获得所有正确的模拟模块(主要是因为RTD环境很难在本地模拟,并且只会在错误消息中向您显示它未能导入的第一个模块),但是最终,我能够说服RTD拥有所需的一切,而不会超出其内存限制。
此解决方案不是特定于精神病的。这将对您在RTD上无法点子安装的任何问题都起作用。