安装pyqt4-dev-tools时遇到问题

1 投票
1 回答
3754 浏览
提问于 2025-04-17 12:27

你好,我在使用PyQt4-dev-tools时遇到了一个问题,这个工具包括:
* 一个用户界面编译器(pyuic4)
* 一个资源文件生成器(pyrcc4)
* 一个翻译字符串查找工具(pylupdate)
问题出现在我想把从设计器保存下来的代码转换成模块时,使用了以下命令:

pyuic4 untitled.ui>test.py 

然后我收到了这个错误:

Traceback (most recent call last):
  File "/usr/bin/pyuic4", line 3, in <module>
    import PyQt4.uic.pyuic
  File "/usr/lib/pymodules/python2.6/PyQt4/uic/pyuic.py", line 4, in <module>
    from PyQt4 import QtCore
RuntimeError: the sip module implements API v8.0 to v8.1 but the PyQt4.QtCore module requires API v7.1

我尝试过升级、卸载和重新安装,还手动安装等等……

这里是我所做的完整日志: http://pastebin.com/2DYfAwdC

附言:抱歉我的英语不好

1 个回答

2

你的 sip python 模块可能已经更新到一个新版本,而这个新版本和你的 PyQt 安装不兼容。我建议你先把 sip、PyQt 和 Qt 都卸载掉,然后再重新安装一遍。

检查一下你的 apt 是否是最新的,同时确认一下你的 pythonpath 里没有旧版的 PyQt 安装。

如果你能单独成功导入 PyQt,那就试着比较一下导入路径,确保你没有引入其他版本的 PyQt:

# from a shell
python -c "from PyQt4 import QtCore; print QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR; print QtCore.__file__"

比较一下版本和 PyQt4 的位置,看看和你在使用 pyuic4 时出现的错误信息中的路径是否一致。

如果 sip 被找到的地方不一样,试着调整一下你的 PYTHONPATH 来确认一下:

import sys
sys.path.insert(0, "/usr/lib/pymodules/python2.6")

from PyQt4 import QtCore

如果这样做没有崩溃,那你可能需要把这个造成冲突的新版本 sip 删除掉,路径是:"/usr/lib/python2.6/dist-packages/sip.so"

撰写回答