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

VS Code通过SSH远程运行Python代码时plt.show()无法显示图表

解决远程Linux通过VS Code运行Python时plt.show()无法显示图表的问题

方法1:配置X11转发实现图形界面显示

  • Windows端安装X服务器工具(比如VcXsrv),启动时勾选Disable access control选项,允许远程连接请求。
  • 建立SSH连接时启用X11转发:使用命令 ssh -X username@remote_server_ip;如果用VS Code的Remote - SSH扩展,编辑SSH配置文件(~/.ssh/config),在对应主机条目下添加:
    ForwardX11 yes
    ForwardX11Trusted yes
    
  • 远程Linux终端中检查DISPLAY变量:执行 echo $DISPLAY,输出类似localhost:10.0则表示配置生效。
  • 确保matplotlib使用支持X11的后端,代码开头可添加:
    import matplotlib
    matplotlib.use('TkAgg') # 或Qt5Agg,需确保系统已安装对应依赖
    import matplotlib.pyplot as plt
    

方法2:切换为非交互式后端,保存图片替代显示

如果不需要实时显示图表,直接将结果保存为文件:

  • 在代码中替换plt.show()为plt.savefig('output_plot.png'),运行后可通过VS Code的文件浏览器下载查看图片。
  • 或者全局设置非交互式后端,在代码开头添加:
    import matplotlib
    matplotlib.use('Agg') # 无图形界面的轻量后端
    import matplotlib.pyplot as plt
    

方法3:利用VS Code Remote扩展的内置图形支持

  • 确保VS Code的Remote - SSH扩展为最新版本。
  • 远程Linux系统安装必要的图形依赖:
    # Debian/Ubuntu系
    sudo apt-get install python3-tk libx11-dev libxext-dev libxrender-dev
    # RHEL/CentOS系
    sudo dnf install python3-tkinter libX11-devel libXext-devel libXrender-devel
    
  • 重启VS Code的远程会话,运行代码时确保终端继承了正确的DISPLAY环境变量。

方法4:使用Jupyter Notebook/Lab远程运行

  • 远程Linux安装Jupyter:pip install jupyterlab
  • 启动Jupyter Lab并允许外部访问:
    jupyter lab --ip=0.0.0.0 --port=8888 --no-browser
    
  • 复制终端输出的访问链接(包含token),在Windows本地浏览器中打开,在Notebook中运行代码时,plt.show()会直接在页面内渲染图表。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 19:17:11