简体   繁体   中英

PyQt5 and QtGui module not found

Is there some reason that QtGui is packaged with PyQt5???

I am using Mark Summerfield's Rapid GUI programming book. Obviously this book was written with Qt4 in mind, but I have been recommended to use Qt5, and PyQt5. I want to run the first example code in chapter 4. The code begins with the following import statements:

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

To which the compiler responds:

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

Note that the PyQt5.QtCore import statement does not generate an error.

From the terminal,

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

Has anybody else come across this import error for QtGui?

From an interactive session I can

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

But I don't have QtWidgets, QtGui, QtWebkit, QtDesigner, and several others.

Also, if it is helpful, the contents of /usr/lib/python3.3/site-packages/PyQt5 are:

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

which are the same modules that I am able to import. Should the other modules (QtWidgets, QtGui etc) be here too?

I am using Ubuntu 13.04 and Python 3.3.

When first trying pyqt4 and pyqt5 and the pycharm IDE I had many problems with imports. (although the imports had no prob running from IDLE) Eventually after much stuffing around, uninstalling and reinstalling, (including dependencies) the imports sorted themselves out.

Did you install pyqt5 using an installer from the pyqt website? You must. Qt designer is found under the start menu in windows. When following PyQt4 tutorials, I have had luck using the following import statements for PyQt5...

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

I'm new to it myself but in pyqt4, QtWidget was part of QtGui (QtGui.QtWidget), in pyqt5 it gets imported by itself as QtWidgets. Its only a small change in code to get the pyqt4 tutorials working in pyqt5.

I personally went back to pYqt4 to take advantage of pyqtgraph.

Look at my pyqt4 post here which walks you through using Qt Designer.

The problem was when I was running the PyQt5 configure script. The correct option to pass went like this:

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

I was providing the path up to bin, but did not specifically point to qmake. Go figure!

After running the configure script like this, I was able to import all the PyQt5 modules.

Configure pyqt with this command:

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

Whether a qt module builds or not depends on the configure.py's check. Take a look at the terminal output and you will find the reason why QtGui..QtWidgets was not installed correctly.

same issue, python run py ok, but in all IDE: visual studio code/PyCharm. It will show syntax error.

Finally I solved it by set env var PYTHONPATH to python site-packages path, eg

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

I had this problem today and I solved as below:

Instead of importing like:

from PyQt5.QtGui import QIcon

Imported this way and it will just fine:

from PyQt5 import QtGui
from PyQt5.QtGui import QIcon

in PyQt5 , QtGui and QtCore is located into the QtWidgets

You should import like this:

from PyQt5.QtWidgets import QtGui, QtCore

instead of

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

Hope this helps. :)

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM