【问题标题】:Why are SIP and PyQt4 not getting along为什么 SIP 和 PyQt4 不能相处
【发布时间】:2023-03-25 06:35:01
【问题描述】:

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

from PyQt4 import QtCore

我得到一个运行时错误:

RuntimeError: the sip module implements API v9.0 to v9.1 but the PyQt4.QtCore module requires API v8.1

我确信这是一个我有知识库可以在 Windows 中解决的问题,但是我的 Linux 经验不足在这里变得越来越好,而且我安装了一些错误的东西。这个错误让我相信我的 SIP 版本对于我的 PyQt 版本来说太花哨了……有人有这方面的经验吗?

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

cfg.pyqt_version_str
Out[9]: '4.9.3'
cfg.sip_version_str
Out[10]: '4.14.3-snapshot-55188026fe6d'

不确定所有快照业务是关于什么的。

【问题讨论】:

  • @gertvdijk:你从哪里得知它是“继任者”?请记住,诺基亚将 Qt 卖给了 Digia,这意味着开源方面可能仍然是一个“?”,而这一切都没有影响 Riverbanks 的课程。一个只是 LGPL,另一个是 GPL。 PyQt 得到积极维护。
  • 在这种情况下可能不是,但我遇到了需要它的情况。 IE。在 Spyder 的开发过程中的某些时候与 Spyder 的兼容性问题。在 PyQt 出来之前,PySide 无法实现 PyQt
  • 你知道你安装的 PyQt 版本和 sip 版本吗?
  • 嗯,这就是我不擅长 Linux 伤害我的地方......我刚刚做了一个 apt-cache search pyqt sudo apt-get install python-qt4
  • 您是手动安装 sip 还是来自 apt-get?出于某种原因,它使用了 sip 4.14.3 的开发快照,这可能不是最好的主意,因为您的 PyQt 不是最新版本

标签: python pyqt4 python-sip


【解决方案1】:

如果您需要使用 Qt 4.7,这些版本可以一起使用(构建在 x86_64 Centos6 上工作)

    PyQt 4.10.4
    SIP 4.15.5
    QT 4.7.4

如果您需要 Qt 4.8,这些版本一起用于构建 PyQt4:

    PyQt 4.11
    SIP 4.16
    QT 4.8.x

使用这些步骤构建 PyQt4:

    python configure-ng.py -g
    make
    make install

【讨论】:

    【解决方案2】:

    我刚刚通过apt-get 测试了 sip/pyqt 的安装并安装了:

    • sip 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
    

    【讨论】:

      猜你喜欢
      • 2023-04-09
      • 2018-11-07
      • 1970-01-01
      • 1970-01-01
      • 2019-08-20
      • 1970-01-01
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      相关资源
      最近更新 更多