python readthedocs如何满足sip(或pyqt)的要求

时间:2015-01-27 19:43:01

标签: python pyqt pip python-sip read-the-docs

我想在readthedocs.org中发布我的项目https://bitbucket.org/oaltun/opn的文档。

构建失败。日志https://readthedocs.org/builds/opn/2247789/中显示了不同的错误,但第一个是“没有名为sip的模块”。

pyqt需要sip,这是项目所需要的。

通常在这种情况下,据我所知,你会在你的setup.py中添加缺少的包,并检查readthedocs.org选项以创建virtualenv。我选中这个框来创建一个virtualenv。但我不能将sip或pyqt添加到setup.py。

问题是pyqt& sip不使用setuptools,因此无法通过pip安装。因此,您无法将它们添加到setup.py(即使在我的本地计算机上也会失败)。

在我的本地环境中,我使用(ana)conda安装pyqt。但我认为readthedocs.org使用pip来调用依赖项。

那么,我怎么能让我的virtualenv包括sip?

1 个答案:

答案 0 :(得分:2)

诀窍是模拟这些接口:

import mock 
MOCK_MODULES = ['sip', 'PyQt4', 'PyQt4.QtGui']
sys.modules.update((mod_name, mock.MagicMock()) for mod_name in MOCK_MODULES)

请注意,您还必须模拟根包' PyQt4'或者会得到一个ImportError。