如何使用X11转发将远程Unix计算机生成的pyplot图显示到本地Windows计算机?

2024-03-28 15:39:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我已经安装了Xming和VcXsrv,并尝试了两者

使用VcXsrv,我运行它,选择“多个窗口”,并将“显示编号”保留为0。我启动“无客户端”,并保留所有默认设置。然后我可以看到一个标记为“XMingServer:0.0”的图标

使用Putty,我转到X11选项卡,选中“启用X11转发”,并将X显示位置设置为0.0。其他一切都默认

连接到Unix(Ubuntu)服务器后:

cat /etc/ssh/sshd_config | grep X11Forwarding输出:

X11Forwarding yes
#       X11Forwarding no

python3 --version输出:

Python 3.6.9

sudo apt-get install python3.6-tk输出:

python3-tk is already the newest version (3.6.9-1~18.04).

因此,我认为所有需要安装/启用的操作都已完成

然后我运行:export DISPLAY=0.0

然后运行以下脚本:

# x_forward_example.py
import matplotlib
matplotlib.use('tkagg')

import matplotlib.pyplot as plt
import numpy as np

t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2*np.pi*t)
plt.plot(t, s)

plt.title('About as simple as it gets, folks')
plt.show()

使用python3 x_forward_example.py。并获得输出:

_tkinter.TclError: couldn't connect to display "0.0"

如果我尝试export DISPLAY=localhost:0.0,我会得到相同的结果:

_tkinter.TclError: couldn't connect to display "localhost:0.0"

如果我关闭Putty并将X显示位置更改为localhost:0.0,则两个显示环境值都会出现相同的错误。如果使用127.0.0.1:0.0作为X显示位置,则相同