Windows更新后Matplotlib在Spyder中进程无法正常结束求助
Spyder中Matplotlib显示异常问题排查与解决
问题诱因确认
适用于Windows 11 22H2 x64的.NET Framework 3.5和4.8.1累积更新(KB5034467)确实有可能是问题诱因。这类系统更新可能干扰Qt运行环境(Spyder和Matplotlib的交互式显示依赖Qt后端),引发事件循环阻塞,进而出现图表加载缓慢、进程无法正常结束的情况。
已尝试的无效操作
- 重启内核
- 关闭Spyder与Anaconda
- 重启电脑
报错信息
File ~\Documents\AU\CPrediction\visualization.py:114 in plot_treadmillData plt.show() File ~\anaconda3\Lib\site-packages\matplotlib\pyplot.py:446 in show return _get_backend_mod().show(*args, **kwargs) File ~\anaconda3\Lib\site-packages\matplotlib\backend_bases.py:3620 in show cls.mainloop() File ~\anaconda3\Lib\site-packages\matplotlib\backends\backend_qt.py:604 in start_main_loop with _maybe_allow_interrupt(qapp): File ~\anaconda3\Lib\contextlib.py:144 in __exit__ next(self.gen) File ~\anaconda3\Lib\site-packages\matplotlib\backends\qt_compat.py:245 in _maybe_allow_interrupt old_sigint_handler(*handler_args) KeyboardInterrupt
解决方案
切换Matplotlib后端:在代码开头手动指定兼容的后端,避开受影响的Qt环境:
import matplotlib # 优先尝试TkAgg后端;若需非交互式输出可换用Agg(需用plt.savefig()保存图片) matplotlib.use('TkAgg') import matplotlib.pyplot as plt更新依赖组件:打开Anaconda Prompt,执行命令更新Spyder、Matplotlib及Qt相关包,确保版本兼容:
conda update spyder matplotlib pyqt修复.NET Framework:若怀疑更新导致.NET环境损坏,可通过控制面板修复:
- 打开「控制面板」→「程序和功能」
- 找到「.NET Framework 3.5」和「.NET Framework 4.8.1」,点击「更改」
- 选择「修复」选项,完成后重启电脑
回滚Windows更新:若上述方法均无效,可尝试卸载KB5034467:
- 打开「设置」→「Windows更新」→「更新历史记录」
- 点击「卸载更新」,找到对应KB编号的更新并卸载
- 重启电脑后测试Matplotlib功能
内容的提问来源于stack exchange,提问作者Magali Sganga
相关产品推荐
相关产品推荐

