繁体   English   中英

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

[英]Importing matplotlib.pyplot fails in PyCharm due to AttributeError: module 'PyQt5.QtGui' has no attribute 'QApplication'

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

在对此进行了一些研究后,我发现了这个: 链接它建议更改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很陌生,并且在这个深度上不太了解它的核心,所以任何帮助都是值得赞赏的。

谢谢,安娜

更新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上的问题)

对于任何有相同问题的人,我通过切换到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')

灵感来自这个解决方案

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM