无法从PyQt4

时间:2017-08-08 10:26:19

标签: import pyqt4 python-3.6 qtgui

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

我在窗户上。 我有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:如果导入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所以我不确定我应该这样做.....此外,   即使我这样做,当我走得更远时,我仍然会得到错误

     

问题3:有人知道如何使其发挥作用吗?

1 个答案:

答案 0 :(得分:0)

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

Q2:不,您的导入语句中不应该有sip。只需from PyQt4 import QtGui即可。您的安装有问题。

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

我建议您重新安装Anaconda,然后仅使用Anaconda安装PyQt。

也许你已经尝试了这个,但是因为PyQt4不适用于Python 3.6而使用了pip。如果您只想尝试本教程,可以降级到Python 3.5。另一种选择是使用PyQt5。与PyQt4最大的区别在于QtGui包已分为QtWidgetsQtGui。因此,将示例转换为PyQt5应该很容易。