Pycharm导入Pyqt4和Pyqt5错误

4 投票
3 回答
13418 浏览
提问于 2025-04-18 14:49

我在使用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导入却没有警告呢?提前谢谢大家的帮助。

3 个回答

0

我之前也遇到过同样的问题,使用的是Python 3.5.1和Pycharm 2016.1.2。解决这个问题的方法是额外安装一个叫做python3-qtpy的包,所以:

apt-get install python3-qtpy

之后,我在Pycharm中就不再收到关于PyQt4的未解决引用的错误了。

0

这是因为你需要把你的项目文件夹设置为源代码根目录。可以按照以下步骤操作:

  1. 右键点击你的项目文件夹
  2. 选择“标记目录为”,然后点击“源代码根目录”。

想了解更多细节,可以查看这个链接: PyCharm中的未解决引用问题

4

在PyCharm中,点击 文件 > 清除缓存 对我有用。

https://stackoverflow.com/a/11773462/999943

希望这能帮到你。

撰写回答