【问题标题】:Cannot import QtGui from PyQt4无法从 PyQt4 导入 QtGui
【发布时间】:2018-01-15 21:01:35
【问题描述】:

我已经在很多帖子中看到过这个问题,但没有一个答案对我有帮助。 所以,这是我的问题。

我在窗户上。 我有 python 3.6 版本

1) 我在那里下载了 PyQt4 的轮子文件 (PyQt4-4.11.4-cp36-cp36m-win_amd64.whl): http://www.lfd.uci.edu/~gohlke/pythonlibs/

我把它保存在这里:C:\Users\Anne-Sophie

2) 我以管理员身份打开一个 shell 窗口并运行“pip install PyQt4-4.11.4-cp36-cp36m-win_amd64.whl”

即使我收到消息,安装似乎也能正常工作:

Requirement 'PyQt4-4.11.4-cp36-cp36m-win_amd64.whl' looks like a filename, but the file does not exist

当我重新运行“pip install PyQt4-4.11.4-cp36-cp36m-win_amd64.whl”时,我仍然收到此消息,但我也收到"Requirement already satisfied: PyQt4==4.11.4 from file:///C:/WINDOWS/system32/PyQt4-4.11.4-cp36-cp36m-win_amd64.whl in c:\users\anne-sophie\anaconda3\lib\site-packages"

3) 现在,当我打开一个 python 笔记本并写“import PyQt4”时,我没有收到任何错误。

但是当我写 from PyQt4 import QtGui 时,我收到错误消息:ImportError: cannot import name 'QtGui'

4) 我去了C:\Users\Anne-Sophie\Anaconda3\Lib\site-packages\PyQt4,我看到QtGui 不在PyQt4 中,而是在PyQt4/sip 中,所以我写了from PyQt4.sip import QtGui 这是工作......

5) 我去这个网站寻找 PyQt4 的初学者: https://pythonprogramming.net/basic-gui-pyqt-tutorial/

我写道:

import sys
from PyQt4.sip import QtGui
app = QtGui.QApplication(sys.argv)

我收到错误:AttributeError: module 'PyQt4.sip.QtGui' has no attribute 'QApplication'

最后是我的问题:

Q1:如果 import PyQt4 是,你认为Requirement 'PyQt4-4.11.4-cp36-cp36m-win_amd64.whl' looks like a filename, but the file does not exist 是个问题吗(第 2 步) 工作吗?

Q2:你知道我做错了什么吗?没有人在使用from PyQt4.sip import QtGui,所以我不确定我应该这样做.....此外, 即使我这样做了,当我走得更远时我仍然会出错

Q3:有人知道如何让它工作吗?

【问题讨论】:

    标签: import pyqt4 python-3.6 qtgui


    【解决方案1】:

    Q1:我认为您收到错误消息 ('PyQt4-4.11.4-cp36-cp36m-win_amd64.whl' looks like a filename, but the file does not exist) 是因为您从与保存 wheel 文件的目录不同的目录运行 pip 命令,因此 pip 无法找到轮文件。它可能会继续从 Python 包索引下载它,因为第二次运行 Pip 时它说 PyQt4 已经安装。

    Q2:不,您的导入语句中不应包含sip。只是from PyQt4 import QtGui 应该可以工作。您的安装有问题。

    Q3:问题很可能是你在Anaconda的pyqt包旁边使用pip安装了PyQt4(你可以用conda list命令检查这个)。对于 PyQt,你不能这样做。 Pip 和 Anaconda 通常可以很好地协同工作,但在 PyQt 的情况下它们不能,因为包名称不同。

    我建议你重新安装 Anaconda,然后只使用 Anaconda 来安装 PyQt。

    也许您已经尝试过了,但选择了 pip,因为 PyQt4 不适用于 Python 3.6。如果您只想尝试本教程,您可以降级到 Python 3.5。另一种选择是使用 PyQt5。与 PyQt4 最大的不同是 QtGui 包被拆分为 QtWidgetsQtGui。所以将示例翻译成 PyQt5 应该很容易。

    【讨论】:

      猜你喜欢
      • 2011-02-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-05-16
      • 1970-01-01
      • 2023-03-15
      相关资源
      最近更新 更多