pyuic4 ImportError: нет модуля с именем port_v2.ascii_upper - PullRequest
0 голосов
/ 04 апреля 2019

Я пытаюсь преобразовать виджет 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

Большое спасибо!

...