显示python远程绘图

2020-06-29  本文已影响0人  BetterCV

问题出现的场景

images.png

代码在Linux服务器上运行,需要绘图以辅助调试、验证正确性等;开发机是Windows10系统,用VSCode的Remote Development或者PyCharm。希望在本地能交互的显示matplotlib的绘图,而不是存储为图片。

配置步骤

1. Linux服务器端

通常是Linux服务器管理员来配置。

确保安装配置了X11相关软件包:

sudo apt-get install xorg
sudo apt-get install openbox

确保ssh服务配置中开启了X11转发:

vim /etc/ssh/sshd_config

包含类似如下内容:

X11Forwarding yes
X11DisplayOffset 10
PrintMotd no
PrintLastLog yes
TCPKeepAlive yes

(ubuntu16.04的话,默认安装后是配置好的,不用改)

2. 本地开发机

Win10的话,用Xmimg+putty(或其他能支持X11转发接受功能的ssh客户端)。
Mac的话,用XQuarts。

Windows开发机
以Win10为例,装好Xmimg和putty后,开启Xlaunch,然后开putty,并勾选:

Connection-> SSH -> X11 Forwarding

putty连接OK后,查看DISPLAY环境变量的值:

echo $DISPLAY

例如我的是

localhost:19.0

则在VSCode远程连接的终端中,临时指定DISPLAY的值后,再执行画图的python程序,本地就可以通过Xmimg显示了:

export DISPLAY=localhost:19.0

也可以在putty窗口中执行执行程序,因为DISPLAY已经有正确的值了。

Linux桌面系统
ssh时指定"-X"参数即可:

ssh  -X  your_name@some_ip

其他

PyCharm远程调试显示图片

  1. PyCharm需要专业版,免费版不支持远程调试,更不可能远程调试时显示图片
  2. Linux远程server配置好ssh、装好xorg和openbox之后,PyCharm调试,自动可以显示图片

ref

Python plotting on remote server using PyCharm

上一篇 下一篇

猜你喜欢

热点阅读