Модуль PyQt5 и QtGui не найден

есть ли какая-то причина, по которой QtGui упакован с PyQt5???

я использую быструю книгу программирования GUI Марка Саммерфилда. Очевидно, эта книга была написана с учетом Qt4, но мне было рекомендовано использовать Qt5 и PyQt5. Я хочу запустить первый пример кода в главе 4. Код начинается со следующих инструкций импорта:

import sys
import time
from PyQt5.QtCore import *
from PyQt5.QtGui import *

на что компилятор отвечает:

Traceback (most recent call last):
  File "wakeUp.py", line 4, in <module>
    from PyQt5.QtGui import *
ImportError: No module named 'PyQt5.QtGui'

обратите внимание, что PyQt5.Инструкция QtCore import не генерирует ошибка.

из терминала,

$ echo $PYTHONPATH
:/usr/lib/python3.3/site-packages

кто-нибудь еще сталкивался с этой ошибкой импорта для QtGui?

из интерактивной сессии я могу

>>> import PyQt5.Qt
>>> import PyQt5.QtDBus
>>> import PyQt5.QtNetwork
>>> import PyQt5.QtXmlPatterns

но у меня нет QtWidgets, QtGui, QtWebkit, QtDesigner и нескольких других.

кроме того, если это полезно, содержимое /usr/lib/python3.3/site-packages / PyQt5 являются следующими:

__init__.py  QtCore.so  QtDBus.so  QtNetwork.so  Qt.so  QtXmlPatterns.so  uic

которые являются теми же модулями, которые я могу импортировать. Если другие модули (QtWidgets, QtGui и т. д.)тоже здесь?

я использую Ubuntu 13.04 и Python 3.3.

5 ответов


при первой попытке pyqt4 и pyqt5 и PyCharm IDE у меня было много проблем с импортом. (хотя у импорта не было проблем, запущенных из холостого хода) в конечном итоге после большой набивки, удаления и переустановки (включая зависимости) импорт разобрался сам.

вы установили pyqt5 с помощью установщика с веб-сайта pyqt? Вы должны. Qt designer находится в меню Пуск в windows. При следовании учебникам PyQt4 мне повезло использовать следующее инструкции импорта для PyQt5...

from PyQt4 import QtCore, QtGui #in the pyqt4 tutorials
from PyQt5 import QtCore, QtGui, QtWidgets #works for pyqt5

Я сам новичок в этом, но в pyqt4 QtWidget был частью QtGui (QtGui.QtWidget), в pyqt5 он импортируется сам по себе как QtWidgets. Его только небольшое изменение в коде, чтобы получить PyQt4 учебники, работающие в pyqt5.

Я лично вернулся в pYqt4, чтобы воспользоваться pyqtgraph.

посмотрите на мой пост pyqt4 здесь который проведет вас через использование Qt Designer.


настройте pyqt с помощью этой команды:

python[3] configure.py --qmake=[path to Qt5.x]/bin/qmake --verbose

строит ли модуль qt или нет, зависит от configure.py проверка. Взгляните на выход терминала, и вы найдете причину, почему QtGui..QtWidgets был установлен неправильно.


проблема была, когда я запускал сценарий настройки PyQt5. Правильный вариант прохождения шел так:

> python3 configure.py --qmake [path to Qt5.x]/bin/qmake

я предоставлял путь до bin, но конкретно не указывал на qmake. Иди разберись!

после запуска сценария настройки, как это, я смог импортировать все модули PyQt5.


та же проблема, python запускает py ok, но во всех IDE: visual studio code/PyCharm. Он покажет ошибки.

наконец, я решил его, установив путь env VAR PYTHONPATH к Python site-packages, например,

PYTHONPATH=D:\Anaconda3\Lib\site-packages

на PyQt5, QtGui пакет и модулями QtCore находится в QtWidgets

вы должны импортировать следующим образом:

from PyQt5.QtWidgets import QtGui, QtCore

вместо

from PyQt5.QtCore import *
from PyQt5.QtGui import *

надеюсь, что это помогает. :)