Pycharm在导入Pyqt4和Pyqt5时出现错误

4
我是一个有用的助手,可以为您翻译文本。
我在使用PyQt时遇到了一些问题。我通过Homebrew安装了PyQt4和PyQt5,并计划在我正在工作的特定项目中使用PyQt4。然而,我在让它正常工作方面遇到了一些奇怪的问题。
在一个模块中,我们将其称为A,我使用了以下导入:
from OpenGL.GL import *
from OpenGL.GLU import *
from PyQt4 import QtGui
from PyQt4.QtOpenGL import *

现在,PyQt4下方有红色下划线,并显示“对PyQt4的引用未解决”。然而,这段代码可以运行。如果我将其更改为PyQt5,则没有下划线:

from OpenGL.GL import *
from OpenGL.GLU import *
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtOpenGL import *

但是,当我运行时,会出现以下错误:

Traceback (most recent call last):
  File "/Users/Jordan/PycharmProjects/SimpleCAD/QGLWindow.py", line 6, in <module>
    from PyQt5 import QtCore, QtGui, QtWidgets
ImportError: No module named PyQt5

现在,我在我的程序中有另一个窗口,我已经在不同的模块B中处理过了。那些导入看起来像这样:

import sys
from PyQt4 import QtGui

当我运行这段代码时,会出现以下错误:
Traceback (most recent call last):
  File "/Users/Jordan/PycharmProjects/SimpleCAD/QTMainWindow.py", line 2, in <module>
    from PyQt4 import QtGui
ImportError: No module named 'PyQt4'

所以,我的导入出了什么问题?为什么PyQt4在一个模块中有效,但在另一个模块中无效?为什么我对于能够在一个模块中正常工作的PyQt4导入得到警告,但对于无法工作的PyQt5导入没有警告?谢谢提前的任何帮助。


第一个问题:你有多少个Python安装?只有预安装的苹果版本,加上Homebrew版,这两个再加上python.org的安装程序,还是...?因为我猜测你已经将PyQt4安装在一个Python安装中,而你正在尝试从另一个你没有安装它的Python安装中使用它。(而且PyCharm正在使用其中一个来完成代码补全等功能,另一个用来运行你的脚本。) - abarnert
我只有两个 Hombrew 安装:2.7 和 3.4。我删除了所有其他版本,所有我的下载模块都使用 Homebrew 安装。所以,你的评论帮助我找出了问题。一个模块使用了 3.4,另一个使用了 2.7。当我编辑 Pycharm 配置时,我错误地认为它应用于项目中的所有模块。谢谢!虽然如此,红色下划线仍然存在。好奇是什么原因造成了这种情况?不过,程序没有出现问题。 - user3675085
我的第一个猜测是我上面提到的:PyCharm是否配置为使用错误的Python安装来进行代码完成? - abarnert
2
同时,您想关闭/删除此问题,还是认为它对于有类似问题的人会有用(在这种情况下,您应该编写并接受自己的答案,除非您希望我这样做)? - abarnert
可能是PyCharm无法解析对PyQT5模块的引用的重复问题。 - Amorphous
3个回答

4

重建缓存可能需要一些时间,但对我来说确实起作用了。 - Lenormju

0

我现在使用Python 3.5.1和Pycharm 2016.1.2遇到了同样的问题。解决方法是额外安装python3-qtpy包,如下:

apt-get install python3-qtpy

之后在Pycharm里我不再收到有关PyQt4未解决的引用问题了。


0
这是因为您需要将项目目录设置为源根目录。请尝试以下步骤:
  1. 右键单击您的项目目录
  2. 选择“标记目录为”,然后点击源根。

有关更多详细信息,请查看:在PyCharm中出现未解决的引用问题


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接