为什么SIP和PyQt4不能相处

Mat*_*att 5 python pyqt4 python-sip

我在Windows中完成了大部分工作,并且设置了一个像我喜欢的好的python27.我最近安装了virtualBox并在其上运行了一个Ubuntu机器,我正在尝试安装PyQt4.我从apt-get安装并更新了所有内容,但是,当我尝试从PyQt4导入时

from PyQt4 import QtCore
Run Code Online (Sandbox Code Playgroud)

我得到一个runtimeError:

RuntimeError: the sip module implements API v9.0 to v9.1 but the PyQt4.QtCore module requires API v8.1
Run Code Online (Sandbox Code Playgroud)

我确信这是一个问题,我将在Windows中拥有知识库,但我的Linux缺乏经验在这里变得更好,我安装了错误的东西.这个错误让我相信我有一个对我的PyQt版本来说过于花哨的SIP版本......任何人都有这方面的经验吗?

编辑:如果我收到错误后再次尝试导入它似乎工作.这样做我获得了版本信息.

cfg.pyqt_version_str
Out[9]: '4.9.3'
cfg.sip_version_str
Out[10]: '4.14.3-snapshot-55188026fe6d'
Run Code Online (Sandbox Code Playgroud)

不确定快照业务的全部内容.

jdi*_*jdi 5

我刚刚通过以下方式测试了 sip/pyqt 的安装apt-get并安装了它:

  • 啜饮 4.12.4
  • PyQt4 4.8.5

您报告的 sip 版本是开发快照。我建议删除所有这些,sudo apt-get update然后sudo apt-get install python-sip python-qt4再做一次。

否则,您可以从源代码执行最新的稳定版本:

如果您有混合安装,请尝试删除所有这些。使用 pip 你可以做到pip remove sip。或者你可以进入 python shell 并找出它的位置,然后手动删除它:

$ python
>>> import sip
>>> print sip 
# path to sip
Run Code Online (Sandbox Code Playgroud)