我正在尝试使用'pyuic4
我只是做
pyuic4 widget.ui -o ui_widget.py
但是我得到这个错误:
Traceback (most recent call last):
File "/usr/bin/pyuic4", line 3, in <module>
import PyQt4.uic.pyuic
File "/usr/lib/python3/dist-packages/PyQt4/uic/__init__.py", line 43, in <module>
from PyQt4.uic.Compiler import indenter, compiler
File "/usr/lib/python3/dist-packages/PyQt4/uic/Compiler/compiler.py", line 43, in <module>
from PyQt4.uic.properties import Properties
File "/usr/lib/python3/dist-packages/PyQt4/uic/properties.py", line 51, in <module>
from PyQt4.uic.port_v2.ascii_upper import ascii_upper
ImportError: No module named port_v2.ascii_upper
我一直在研究相关模块,可以在properties.py
和pyuic.py
if sys.hexversion >= 0x03000000:
from PyQt4.uic.port_v3.ascii_upper import ascii_upper
else:
from PyQt4.uic.port_v2.ascii_upper import ascii_upper
(我在Riverbank的页面中看到有一个带有v2 ascii的分支,但我尚未安装)
如果我在命令行中这样做: python(v2.7.12)
>>> import sys
>>> print hex(sys.hexversion)
0x2070cf0
>>>
然后我在python3(3.5.2)中做同样的事情
>>> import sys
>>> print (hex(sys.hexversion))
0x30502f0
>>>
好吧……看起来pyuic4调用了python 2版本。但是我不知道用python3执行pyuic4需要什么
与PyQt4相关的其他数据(我不知道它是否有用):
>>> import PyQt4
>>> from PyQt4 import QtCore
>>> print ((QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR))
('4.11.4', '4.8.7')
>>>
编辑:
这是从pyqt4-dev-tools
软件包(Linux mint)安装的。
如果我尝试使用PIP安装,则会出现此错误:
pip3 install pyuic4
收集pyuic4
找不到一个版本 满足pyuic4的要求(从版本:)无匹配项 发现pyuic4发行版您正在使用pip版本8.1.1,但是 版本19.0.3可用。您应该考虑通过 'pip install --upgrade pip'命令。
Edit2和可能的解决方案
感谢@ekhumoro
,我已经解决了我的问题。这是/usr/bin/pyuic4
#! /usr/bin/python
# there's no main function, so just import the module
import PyQt4.uic.pyuic
我需要指向python3,所以我只修改了第一行:
#! /usr/bin/python3
非常感谢!