我在使用windows系统的电脑通过pycharm在实验室的linux服务器上运行python程序的时候,无法正常显示图形,程序卡在plt.show()
语句处;而在windows电脑本地运行程序没有问题。通过询问M同事得知使用windows系统连接linux服务器作图的话,需要使用Xming程序,并保证其一直在后台运行。这篇文章就介绍一下怎么设置Xming和putty从而实现可以正常显示图像。
Contents
Step 1: 下载Xming和putty
可以从这里下载Xming并按着提示进行安装。putty大家应该都有了,没有的话在这里下载并安装。网上有人建议Xming的安装地址中不要有空格和中文,可以参考一下尽量避免。
Step 2: 设置putty
运行putty之后首先在界面里输入服务器的ip,可以使用save功能对这个session进行保存,这样下次就可以用load直接调用了(例如我存为了titan)。然后非常重要的是要转到Connection->SSH->X11标签下进行设置,勾选Enable X11 forwarding并输入X display的location,例如 localhost:10.0 (注意:这里之后可能需要更改)
Step 3: 通过putty登陆服务器并进行测试
接下来通过putty登陆服务器,这里需要输入你在服务器的用户名和密码。成功登陆后运行xclock
语句,由于我们还没有设置Xming服务器,这里会出现错误提示,例如
PuTTY X11 proxy: unable to connect to forwarded X server: Network error: Coion refused
Error: Can't open display: localhost:11.0
注意最后的localhost为11.0,因此我们退出putty并把上一步X11标签下的X display location改为localhost:11.0
Step 4: 运行XLaunch
注意是运行XLaunch不是Xming,因为我们需要进行一些设置。运行XLaunch之后在Display number里输入上一步最后提示的localhost的数字,比如这里为11,之后一路下一步就好。
Step 5: 再次使用xclock
进行检查
重复Step 3使用xclock
命令进行检查,设置正确的情况下会显示如下图的时钟。
Step 6: 在pycharm中对项目进行设置
在项目对应的环境变量中增加下图中红框里所示的变量,即Name为DISPLAY,Value为localhost:11.0。如此设置好之后,运行python文件即可正确显示图形结果了。
备注
- 使用过程中需要保证putty和Xming一直是运行状态
- 如果运行时间太长,putty可能会失去响应,这时候关闭putty并重新登陆即可
- 如果出现“奇怪”的问题,可以尝试在putty中再次使用
xclock
命令检查localhost是否还是原来的数字,如果改变了的话,相应的设置也要进行改变,比如XLaunch里的Display number。(我曾经遇到过只更新XLaunch的Display number,不改变putty的X11设置就能使用的情况,原因不明,仅供参考。)