【Linux】解决ssh连接终端无GUI无法显示python图像【服务器】 您所在的位置:网站首页 ssh远程连接图形化界面 【Linux】解决ssh连接终端无GUI无法显示python图像【服务器】

【Linux】解决ssh连接终端无GUI无法显示python图像【服务器】

2024-04-01 12:01| 来源: 网络整理| 查看: 265

问题环境: 我个人使用windows系统,通过ssh连接远程linux服务器进行训练,但远程服务器中并未安装GUI,因此使用Python中matplotlib等工具画图时图像并未显示。经过网上其他教程使用'Agg'调整mobaxterm可显示后,vscode终端还是无法显示。目的为使下方代码通过ssh在linux下远程运行,在本地能显示图像: import matplotlib.pyplot as plt fig = plt.figure() plt.plot(range(10)) plt.show() 解决方法:

通过网络其他教程得到,将matplotlib的backend替换为'Tkagg',如下:

import matplotlib matplotlib.use('tkagg') # Must be before importing matplotlib.pyplot or pylab! import matplotlib.pyplot as plt fig = plt.figure() plt.plot(range(10)) plt.show() 在Vscode远程终端运行:程序报错‘Cannot load backend 'TkAgg' which requires the 'tk' interactive framework, as 'headless' is currently running’,图像未显示。将backend切换为'Agg'后尝试,图像亦不显示,但也不报错。在Mobaxterm运行:成功显示出图像,无报错。

按理来说,vscode和mobaxterm运行方式都是一模一样的终端,一个可以理应通用。于是我想到,是不是程序图像已经可以正常输出了,只是vscode找不到输出的地方,毕竟远程服务器是没有图形界面的。因此我调用查看命令:

echo $DISPLAY

在mobaxterm中显示如下:

在Vscode终端显示为空。据此推断,vscode确实是因为找不到输出位置所造成,因此我把vscode输出参数和mobaxterm改成一样的:

export DISPLAY=:10.0

这下两边保持一致了。

重新在vscode运行,成功显示!

 

 



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有