You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux Mint环境下matplotlib执行plt.plot()无响应挂起问题求助

问题原因

核心是系统执行apt upgrade后,系统层面的Qt5运行库版本更新,与conda环境中安装的pyqt依赖包版本不兼容。matplotlib默认加载的Qt5Agg后端调用冲突的Qt库时触发死锁,因此会在执行绘图相关函数时无响应,且无法通过Ctrl+C中断。

解决方案

  • 方案1:更换matplotlib后端(优先尝试)
    在导入matplotlib.pyplot前指定兼容的GUI后端,示例代码如下:
import matplotlib
# 若需要弹窗显示图像,使用TkAgg后端
matplotlib.use('TkAgg')
# 若仅需保存图像不需要弹窗,使用无GUI的Agg后端
# matplotlib.use('Agg')
import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
x = np.random.randint(0, 10, 10)
y = np.random.randint(0, 10, 10)
plt.plot(x, y)
plt.show()

如果运行提示找不到TkAgg后端,先执行sudo apt install python3-tk安装系统依赖。
测试正常后可修改配置永久生效:

  1. 进入日志中显示的配置目录:cd /home/sjoerd/.config/matplotlib
  2. 编辑(若不存在则新建)matplotlibrc文件,添加一行:backend: TkAgg
    保存后重启Python进程即可默认使用该后端。
  • 方案2:清理matplotlib缓存
    字体缓存损坏也可能导致绘图挂起,执行以下命令清理缓存后重试:
rm -rf /home/sjoerd/.cache/matplotlib/*
  • 方案3:修复Qt依赖冲突
    如果需要保留Qt5Agg后端,可通过以下两种方式解决版本冲突:
  1. 升级conda环境中的pyqt包,适配系统新版本Qt库:
conda activate <你的环境名称>
conda install pyqt --update-deps
  1. 卸载conda环境中的pyqt包,让matplotlib直接调用系统层面的Qt库:
conda activate <你的环境名称>
conda remove pyqt

内容的提问来源于stack exchange,提问作者sjoerdgitaar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 13:54:04