PyCharm控制台模式下matplotlib.show()无法显示图形问题求助
PyCharm控制台中Matplotlib plt.show()显示空白窗口并崩溃,首次导入报错但二次导入正常
我在PyCharm里用Matplotlib处理数据绘图时碰到了挺棘手的问题,具体情况如下:
- 在PyCharm的控制台里执行脚本,调用
plt.show()后只会弹出一个空白的图形窗口,光标一直是沙漏状态,关闭窗口时还会弹出“program has stopped working”的错误提示 - 第一次执行
import matplotlib.pyplot as plt时,会出现Matplotlib support failed的报错,但第二次再执行这条导入语句就完全正常了 - 要是切换到PyCharm的运行/调试模式,图形就能正常显示,完全没毛病
我用的是Python 3.6,实在摸不清问题根源,有没有大佬能支支招?
几个可能解决问题的方向,你可以挨个试试:
1. 手动指定Matplotlib后端
PyCharm控制台可能和默认的Matplotlib后端(比如TkAgg)不兼容,你可以在导入plt前先指定一个更兼容的后端,比如Qt5Agg:
import matplotlib matplotlib.use('Qt5Agg') import matplotlib.pyplot as plt
如果用Qt5Agg的话,得先确保安装了pyqt5,执行pip install pyqt5就行;要是还是不行,也可以试试Agg(不过这个是非交互式后端,需要用plt.savefig()保存图片查看)。
2. 检查PyCharm的解释器一致性
有时候控制台用的Python解释器和运行/调试模式的不是同一个,这也会导致奇怪的问题:
- 先在控制台里输入
import sys; print(sys.executable),记下输出的路径 - 再在运行模式下执行同样的代码,对比两个路径是否一致
- 如果不一样,就去
File > Settings > Project: [你的项目名] > Python Interpreter里,把控制台的解释器改成项目对应的Python 3.6环境
3. 升级适配Python 3.6的Matplotlib版本
Python 3.6对应的旧版Matplotlib可能存在和PyCharm控制台的兼容性bug,你可以升级到支持3.6的最新稳定版:
pip install --upgrade matplotlib==3.3.4
这个版本是官方支持Python 3.6的最后几个稳定版本之一,兼容性会好很多。
4. 重置PyCharm控制台的缓存配置
有时候PyCharm的控制台缓存文件出问题也会导致这类异常:
- 先关闭PyCharm,找到PyCharm的配置目录(Windows系统一般是
C:\Users\[你的用户名]\.PyCharm[具体版本号]) - 删除
config\console这个文件夹,然后重启PyCharm再试试
5. 关闭PyCharm的Matplotlib集成工具窗
PyCharm自带的“在工具窗显示绘图”功能可能和控制台冲突,你可以关掉试试:
- 打开
File > Settings > Tools > Python Scientific - 取消勾选
Show plots in toolwindow选项,重启PyCharm后再测试控制台的plt.show()
内容的提问来源于stack exchange,提问作者Mirjam
相关产品推荐
相关产品推荐

