【Linux】解决ssh连接终端无GUI无法显示python图像【服务器】 | 您所在的位置:网站首页 › ssh远程连接图形化界面 › 【Linux】解决ssh连接终端无GUI无法显示python图像【服务器】 |
问题环境:
我个人使用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 实验室设备网 版权所有 |