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

WSL2(Ubuntu22.04)执行Matplotlib代码卡顿并报FigureCanvasAgg警告

解决WSL2 Ubuntu 22.04中Matplotlib图形显示异常问题
  • 先检查X11转发核心配置

    1. 打开WSL终端,执行echo $DISPLAY,正常输出应为:0或带主机IP的:0格式。如果不对,手动设置环境变量:
      export DISPLAY=$(cat /etc/resolv.conf | grep nameserver | awk '{print $2}'):0
      
      设置完成后重新运行代码测试。
    2. 确认XLaunch是在禁用访问控制模式下启动的——启动XLaunch时必须勾选Disable access control,否则WSL的图形请求会被拦截。
  • 修复Matplotlib后端配置

    1. 先查看当前使用的后端:
      python3 -c "import matplotlib; print(matplotlib.get_backend())"
      
      如果输出为Agg(非交互式后端),说明配置出现异常。
    2. 若要手动指定后端,必须确保设置语句在导入pyplot之前:
      import matplotlib
      matplotlib.use('Qt5Agg')  # 注意大小写,Qt5Agg为正确写法
      from matplotlib import pyplot as plt
      plt.plot([1,2,3], [4,2,4])
      plt.show()
      
    3. 安装对应后端的依赖包:
      sudo apt install python3-pyqt5  # 适配Qt5Agg后端
      # 若选择TkAgg后端,执行:sudo apt install python3-tk
      
    4. 永久配置后端:在WSL中创建Matplotlib配置文件,执行以下命令:
      mkdir -p ~/.config/matplotlib
      echo "backend: Qt5Agg" >> ~/.config/matplotlib/matplotlibrc
      
      配置完成后无需每次在代码中手动设置后端。
  • 检查VS Code终端的环境变量传递
    打开VS Code设置,搜索terminal.integrated.env.linux,添加"DISPLAY": ":0"(需与终端echo $DISPLAY的输出一致),重启VS Code终端后验证变量是否生效。

  • 重置XLaunch配置
    关闭当前XLaunch进程,重新启动时选择One large window,显示号设为0,勾选Disable access control后完成配置,再运行代码测试。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 00:07:13