pycharm 远程显示 matplotlib

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

  • 远程服务器上安装
sudo apt-get install xauth
sudo apt-get install xorg
  • 在本地笔记本上打开终端,输入命令:连接上远程服务器,- Y表示建立可信客户端
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我这里显示是:
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
  • 复制DISPLAY的输出,再获取当前matplotlib的后端配置,我这里的是 Qt5Agg
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
  • 配置pycharm,RUN --> Edit Configuration --> Environment --> Environment Varibles,添加环境变量,如下图所示:
  • 最后,写代码测试,注意在使用 matplotlib 时应该提前使用其后端,如下代码前2行所示:
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
  • 然后run,就可以在本地笔记本pycharm中显示matplotlib图片了
原文地址:https://www.cnblogs.com/qiulinzhang/p/10464463.html