Я пытаюсь преобразовать виджет Qt, созданный с помощью Qt Designer, в py-файл, используя '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. Но я не знаю, что мне нужно для запуска pyuic4 с python3
Другие данные, связанные с PyQt4 (не знаю, полезно ли это):
>>> import PyQt4
>>> from PyQt4 import QtCore
>>> print ((QtCore.PYQT_VERSION_STR, QtCore.QT_VERSION_STR))
('4.11.4', '4.8.7')
>>>
Edit:
Он устанавливается из пакета 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
Большое спасибо!