由于内存消耗,要求PsychoPy无法使readthedocs构建失败

时间:2018-06-22 15:07:39

标签: python python-sphinx psychopy read-the-docs

我有一个项目(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。

1 个答案:

答案 0 :(得分:0)

我至少为CPython2.x设计了一个解决方案。 RTD需要更好地宣传它的长处和短处是,您可以在conf.py中放入一堆“小样”,以绕过您不想在编译文档时实际导入的模块。您需要在2.7中的需求文件中模拟(可能在3.x中是unittest.mock)

这个想法来自这里:http://blog.rtwilson.com/how-to-make-your-sphinx-documentation-compile-with-readthedocs-when-youre-using-numpy-and-scipy/

在“常见问题解答:http://read-the-docs.readthedocs.io/en/latest/faq.html#i-get-import-errors-on-libraries-that-depend-on-c-modules

中又有何联系?

我意识到您可以为几乎所有内容创建模拟模块,如果使用MagicMock,则可以根据需要向其添加属性。我花了几次尝试来获得所有正确的模拟模块(主要是因为RTD环境很难在本地模拟,并且只会在错误消息中向您显示它未能导入的第一个模块),但是最终,我能够说服RTD拥有所需的一切,而不会超出其内存限制。

此解决方案不是特定于精神病的。这将对您在RTD上无法点子安装的任何问题都起作用。