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

Python3.6.3 Anaconda环境下matplotlib抛出QXcbConnection错误求助

解决远程Linux服务器上matplotlib的QXcbConnection错误

这个问题我之前在远程服务器跑matplotlib的时候也碰到过,本质是matplotlib默认想用GUI后端渲染图形,但你的远程环境没有可用的X11显示输出,加上Windows升级可能搞坏了本地的X11转发配置,才会报这个错。给你几个靠谱的解决办法:

方法一:切换到非交互式后端(最省心)

如果你的需求只是生成图片然后保存,不需要实时GUI预览,直接让matplotlib用无GUI的后端就行:

  • 在代码开头添加:
    import matplotlib
    matplotlib.use('Agg')  # 必须在import plt之前设置
    import matplotlib.pyplot as plt
    
    或者直接在运行脚本前设置环境变量:
    export MPLBACKEND=Agg
    python your_script.py
    
    Agg是matplotlib默认的无GUI后端,专门用来在服务器环境生成图片,完全不需要依赖X11。

方法二:修复X11转发配置(如果需要GUI预览)

如果确实需要在本地看到matplotlib的图形,那得检查Windows升级后X11转发的链路有没有断:

  • 本地X服务器:确保你本地的X服务器(比如VcXsrv、Xming)是正常运行的,升级后可能需要重启一下,还要检查防火墙有没有阻止X服务器的端口。
  • SSH客户端设置:
    • 用PuTTY的话,进入Connection -> SSH -> X11,勾选Enable X11 forwarding,X display location保持默认或者设为:0。
    • 用OpenSSH命令行的话,登录服务器时要加-X(或者-Y,信任X11转发)参数:
      ssh -X your_username@your_server_ip
      
  • 验证DISPLAY变量:登录服务器后运行echo $DISPLAY,应该输出类似localhost:33.0这样的值。如果是空的,说明X11转发没生效;如果有值但还是报错,可以试试xauth list看看有没有对应的授权条目,没有的话可能需要服务器端重新生成xauth密钥。

额外排查点

  • 服务器端有没有安装Qt相关依赖?不过如果用非交互式后端的话,这个就不重要了。
  • Windows升级后有没有更换SSH客户端?比如从PuTTY换成了OpenSSH,配置不一样也会导致转发失效。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 11:22:58