PyCharm使⽤远程Python解释器并⽤matplotlib绘图的⽅法前⾯是我的探索过程,可以直接翻到最后看完整的正确步骤!java培训班多久能学会的
前⾔
最近在服务器上跑深度学习的代码,PyCharm配置好远程的解释器以后,部署运⾏debug都很完美,再也不⽤GitHub中转了。但是有个问题,我想⽤matplotlib绘图,但是发现远程的服务器并不能把图形界⾯传回来,这怎么办呢?其实想想,之前⽤ssh连接服务器,也不能⽤gedit之类的东西,因为terminal⾥⾯不能有GUI啊。
X11Forwarding
经过⼀番搜索,发现⼀个ssh的功能,X11 Forwarding,这个功能就是可以把图形界⾯给传回来,具体怎么回事如果感兴趣可以⾃⼰去搜⼀搜,这⾥就不赘述了。
环境介绍
我⾃⼰使⽤的是⼀台MacBook配PyCharm:
PyCharm 2017.2.4
Build #PY-172.4343.24, built on October 20, 2017
JRE: 1.8.0_152-release-915-b12 x86_64
JVM: OpenJDK 64-Bit Server VM by
Mac OS X 10.13.1
远程(局域⽹)服务器操作系统Linux Mint,可以理解为ubuntu:
System Info
开始配置
1. 配置远程服务器
需要在远程服务器上安装好xorg;
sudo apt install xorg
之后在/etc/ssh/sshd_config中打开X11Forwarding;
sudo vim /etc/ssh/sshd_config
sshd_config
把X11Forwarding设置成yes,如上图,保存退出。
重启远程服务器的ssh服务,使配置⽣效;
sudo /etc/init.d/ssh restart
这样服务器端就配置完了。
2.配置⾃⼰的电脑
提⽰我们没有DISPLAY这个环境变量。
python代码画图案经过我的⼀番搜索,DISPLAY的设置⽅法如下:
⾸先,在⾃⼰的电脑上打开终端,使⽤带X转发的ssh登陆远程服务器:
ssh -X username@host
登陆之后,输⼊echo $DISPLAY查看环境变量DISPLAY的值,我这⾥是localhost:11.0,每个电脑的值会不⼀样,不过⼀般是localhost:10.0,把这个值复制下来,添加到PyCharm中;
Pycharm->Preferences->Build, Execution, Deployment->Console->Python Console,点击Environment variables后⾯的...,添加我们刚刚看到的DISPLAY变量,如图所⽰:
Environment variables
中文翻译英文的翻译器
好了,我们再试⼀下运⾏之前的代码:
_tkinter.TclError: no display name and no $DISPLAY environment variable
卧槽,为什么还是说没有DISPLAY环境变量啊!
⼜是⼀番搜索,原来在run configuration⾥⾯还要设置⼀遍:
点击运⾏按钮左边的下拉三⾓形->edit configurations ;
选中我们运⾏的configuration,我这⾥是test,点右边的Environment variables的...添加⼀个DISPLAY变量,我这⾥是localhost:11.0。
sql数据库与oracle数据库configuration
OK,我们再来运⾏试试:ajax是什么语言
_tkinter.TclError: couldn't connect to display "localhost:11.0"
好吧,还是报错了,⽆法连接显⽰"localhost:11.0"。虽然报错,但是错误变了,终究是⼀个好事,起码说明我们环境变量设置成功了。经过⼀番尝试,解决办法是要开着ssh -X的终端,才能接收到服务器发来的图形界⾯。
完整步骤
所以正确的流程是怎么样的呢:
1. ⾃⼰电脑上ssh -X登陆远程服务器:
ssh -X username@host
2. 查看远程服务器DISPLAY环境变量的值:
echo $DISPLAY
netstat命令详解win
echo $DISPLAY
3. 保持开着ssh -X的终端运⾏,修改PyCharm的run configuration,增加环境变量与第⼆步中的DISPLAY值⼀致:

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。