由于 AttributeError,在 PyCharm 中导入 matplotlib.pyplot 失败:模块“PyQt5.QtGui”没有属性“QApplication”

Ann*_*jén 6 python import pyqt matplotlib pycharm

我想将我的 python 编译器更改为“更新的”编译器(在一个项目中),并在 conda 中使用一些额外的包。安装后,我所有的包都运行良好,我可以使用控制台,但是从那时起 matplotlib.pyplot 无法导入。并抛出以下错误:app = QtGui.QApplication([" "]) AttributeError: module 'PyQt5.QtGui' has no attribute 'QApplication'

在对此做了一些研究之后,我发现了这个:链接 它建议更改 inputhooks.py(在第 513 行并更改GUI_QT:enable_qt4GUI_QT: enable_qt54 到 5)由于它是公司机器,我无法拥有在 PyCharm 中覆盖内容的管理员权限.

你能推荐一个更好的解决方案来避免这种情况吗?

为什么会弹出这个? 错误日志截图

我也尝试安装较新版本的 pyqt 但这并没有解决问题。

同时在 pydev 中,interactiveshell.py 也失败了。带有以下错误消息:self.showtraceback(running_compiled_code=True) TypeError: showtraceback() got an unexpected keyword argument 'running_compiled_code' 我知道它得到了一个它不期望的参数。我也对这个做了一些研究,有些人可以通过删除一个陈旧的相应 .pyc 文件来修复它(我无法在与初始文件相同的位置找到一个,只有interactiveshell.py)

在这篇关于 pydev 的博客下方,对话从未深入 https://github.com/ipython/ipython/issues/10687

有办法解决吗?我对 Python 有点陌生,在这个深度上不太了解它的核心,因此感谢任何帮助。

谢谢,安娜

Sep*_*Sep 1

对于遇到同样问题的人,我已经通过切换到 qt 和 pyqt 4 解决了这个问题。为此,请按照以下步骤操作:

conda remove qt   
conda install qt=4
conda install -c anaconda pyqt=4.11.4
conda install matplotlib --no-update-dependencies
Run Code Online (Sandbox Code Playgroud)

如果您不使用虚拟环境,您可能还需要在安装新软件包之前删除 anaconda navigator:

conda uninstall anaconda-navigator
Run Code Online (Sandbox Code Playgroud)

在程序开始时,切换 matplotlib 后端:

import matplotlib.pyplot as plt
plt.switch_backend('Qt4Agg')
Run Code Online (Sandbox Code Playgroud)

受到这个解决方案的启发。

  • ^ 这对我不起作用,我必须重新创建一个新环境。更简单的解决方案是将 matplotlib 降级到 matplotlib-2.2.3 或更新 pycharm! (2认同)