【问题标题】:PyQt5 and QtGui module not found找不到 PyQt5 和 QtGui 模块
【发布时间】:2013-06-27 14:33:46
【问题描述】:

QtGui 与 PyQt5 打包有什么原因???

我正在使用 Mark Summerfield 的 Rapid GUI 编程书。显然这本书是用 Qt4 编写的,但我被推荐使用 Qt5 和 PyQt5。我想运行第 4 章中的第一个示例代码。代码以以下 import 语句开头:

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 导入语句不会产生错误。

从终端,

$ 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。

【问题讨论】:

  • 也许你应该使用 PyQt5.QtWidgets 而不是 QtGui?见this example
  • 是的,我已经看到了。不幸的是,QtWidgets 也给出了同样的导入错误。
  • 如果文档中的示例不起作用,则 pyqt 安装错误或不完整。请提供一些有关您的操作系统和 pyqt 安装的信息。

标签: qt python-3.x pyqt qtgui pyqt5


【解决方案1】:

问题出在我运行 PyQt5 配置脚本时。通过的正确选项是这样的:

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

我提供了到 bin 的路径,但没有具体指向 qmake。算了!

像这样运行配置脚本后,我能够导入所有 PyQt5 模块。

【讨论】:

  • 使用“pip install PyQt5”在venv中安装时,没有qmake文件夹或文件。我可以找到\venv\Lib\site-packages\PyQt5\Qt\bin,但是里面全是dll,没有qmake。那么从轮子上安装python3.7不是正确的安装方式吗?
【解决方案2】:

PyQt5中,QtGuiQtCore位于QtWidgets

你应该像这样导入:

from PyQt5.QtWidgets import QtGui, QtCore

而不是

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

希望这会有所帮助。 :)

【讨论】:

  • 嗨,在 PyQt5 中,您来自 PyQt5.QtWidgets import QtGui, QtCore 的以下代码返回此错误 ImportError: cannot import name QtGui
  • @Rhys 检查您使用的是 PyQt5 还是 PyQt4。此解决方案仅适用于 PyQt5。
  • PyQt5.5.1 和 Qt5.6from PyQt5.QtWidgets import QtGui, QtCore => ImportError: cannot import name 'QtGui'。这有效:from PyQt5.QtWidgets import QWidgetimport PyQt5.QtCore as QtCore。如果您确实需要 QtGui 模块:import PyQt5.QtGui as QtGui
【解决方案3】:

当我第一次尝试 pyqt4 和 pyqt5 以及 pycharm IDE 时,我遇到了很多导入问题。 (尽管导入没有问题从 IDLE 运行)最终经过大量的填充、卸载和重新安装(包括依赖项),导入自行解决了。

您是否使用 pyqt 网站上的安装程序安装了 pyqt5?你必须。 Qt 设计器位于 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 帖子 here,它会引导您使用 Qt Designer。

【讨论】:

  • “您是否使用 pyqt 网站上的安装程序安装了 pyqt5?必须。”这个答案,如果它曾经是真的,肯定已经过时了。安装 pyqt5 的最佳方法是使用 pip 进入 virtualenv,这将获得一个二进制轮,或者使用 Anaconda 的包管理器。 Qt 自己的安装程序不会将自己整齐地限制在本地环境中。
【解决方案4】:

使用此命令配置 pyqt:

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

qt 模块是否构建取决于 configure.py 的检查。 看看终端输出,你会发现QtGui..QtWidgets没有正确安装的原因。

【讨论】:

  • 正确!我没有安装 GL 库,所以没有构建 QtGui。 sudo apt install libgl-dev 为我做了诀窍——之后配置正确设置了所有内容。
【解决方案5】:

同样的问题,python 运行 py ok,但在所有 IDE 中:visual studio code/PyCharm。它会显示语法错误。

最后我通过将 env var PYTHONPATH 设置为 python 站点包路径来解决它, 例如

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

【讨论】:

    【解决方案6】:

    我今天遇到了这个问题,我解决了如下:

    而不是像这样导入:

    from PyQt5.QtGui import QIcon
    

    这样导入就行了:

    from PyQt5 import QtGui
    from PyQt5.QtGui import QIcon
    

    【讨论】:

      猜你喜欢
      • 2018-01-12
      • 1970-01-01
      • 1970-01-01
      • 2021-04-21
      • 2014-01-12
      • 2014-05-01
      • 2016-08-08
      • 1970-01-01
      相关资源
      最近更新 更多