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

时间:2018-05-07 20:33:04

标签: python matplotlib import pyqt pycharm

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

在对此进行一些研究后,我找到了这个:link 建议更改inputhooks.py(在第513行并将GUI_QT:enable_qt4更改为GUI_QT: enable_qt5 4到5) 由于它是公司机器,我无法拥有管理权限来覆盖PyCharm中的内容。

您能否推荐更好的解决方案来避免这种情况?

为什么会出现这种情况? ErrorLogScreenshot

此外,我尝试安装较新版本的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很陌生,并且在这个深度上不太了解它的核心,所以任何帮助都会受到赞赏。

谢谢, 安娜

2 个答案:

答案 0 :(得分:1)

更新PyCharm后,所有问题似乎都得到了解决。 (我正在使用versin 2017.1) show traceback错误是由pydev引起的,新版本修复了它。

以及GUI问题。

我能够通过查找文件解决它,并且两条消息都消失了,matplotlib似乎再次正常工作。

在此文件夹下(我将我的环境命名为py35):

C:\ Users \用户名为myUsername \应用程序数据\本地\连续\ anaconda3 \ ENVS \ py35 \ LIB \站点包\ IPython的\ core__pycache __

我找到了这个文件:interactiveshell.cpython-35.pyc并将其删除 - (这解决了仅在Python 3.5上的问题)

答案 1 :(得分: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

如果您不使用虚拟环境,则可能还必须在安装新软件包之前删除anaconda导航器:

conda uninstall anaconda-navigator

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

import matplotlib.pyplot as plt
plt.switch_backend('Qt4Agg')

this solution的启发。