工具

pycharm 远程显示 matplotlib

2019-03-03  本文已影响0人  默写年华Antifragile

本地:Ubuntu 16.04
远程服务器:Ubuntu 16.04
******************************************************************************

sudo apt-get install xauth
sudo apt-get install xorg
ssh -Y user_name@remote_ip

连上之后,打开ssh文件:

vi /etc/ssh/sshd_config 

找到下面这几行,并去掉注释,若没有,则加上这几行

X11Forwarding yes
X11DisplayOffset 10
X11UseLocalhost no

修改之后,重启ssh

service ssh restart

在终端中输入xeyes,可以在本地桌面显示那一双眼睛(如果没有这个命令,可以安装sudo apt-get install xeyes),于是确定了本地电脑和服务器之间的X11 forwarding服务是调通了的

echo $DISPLAY
localhost:10.0

如果这里没有这个环境变量,可以手动设置一个export DISPLAY=localhost:10:0
这时候,在连接上远程服务器的ssh命令行上输入xeyes,检测是否屏幕上出现一双眼睛
若还是没有,本地客户端可以有两种方法保证ssh可以进行X11转发:
修改/etc/ssh/ssh_config~/.ssh/config文件
前者是全局配置,后者为当前用户配置,二者都存在的情况下,后者会覆盖前者的配置。
有两个选项需要注意:
ForwardX11
ForwardX11Trusted
这两个的作用是相互影响的

ForwardX11 ForwardX11Trusted ssh_mode
no no disabled
no yes disabled
yes no untrusted
yes yes trunsted
Python 3.7.0 (default, Jun 28 2018, 13:15:42) 
[GCC 7.2.0] :: Anaconda, Inc. on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import matplotlib
>>> print(matplotlib.get_backend())
Qt5Agg
>>> exit
import matplotlib
matplotlib.use('Qt5Agg') #这一句应该放在 import pyplot前面
import matplotlib.pyplot as plt

import numpy as np

plt.plot(np.arange(50))
plt.show()
ssh_args ssh_mode
ssh disabled
ssh -X untrusted
ssh -Y trunsted
ssh -Y -p2345 user_name@remote_ip
上一篇下一篇

猜你喜欢

热点阅读