pyuic4 ImportError:没有名为port_v2.ascii_upper的模块

时间:2019-04-04 10:03:01

标签: python pyqt4

我正在尝试使用'pyuic4

将使用Qt Designer创建的Qt小部件转换为py文件。

我只是做

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.pypyuic.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

非常感谢!

0 个答案:

没有答案