【matplotlib】远程服务器使用报错 $DISPLAY

matplotlib 在远程服务器调用时报错error: no display name and no $DISPLAY environment variable

1.解决方法

# 在import matplotlib.pyplot代码前增加调用:
import matplotlib
matplotlib.use('Agg')

1.问题分析

出现这个问题主要是由于在使用远程连接时使用的终端X的工作模式决定的。环境变量$DISPLAY决定了客户端应用需要向哪一个X server发送请求。当远程连接时$DISPLAY需要指向本地的X server。
matplotlib.use('Agg')用于修改显示后端为Agg,更多的后端可以参考matplotlib.backends
后端换为agg用于绘图,就不会产生交互式的显示窗口,规避了X终端的冲突

ref:
https://stackoverflow.com/questions/29217543/why-does-this-solve-the-no-display-environment-issue-with-matplotlib
https://stackoverflow.com/questions/4930524/how-can-i-set-the-backend-in-matplotlib-in-python
https://blog.csdn.net/sinat_30372583/article/details/79502078
https://www.cnblogs.com/yumtaoist/p/4249840.html
pic from pexels.com

posted @ 2019-06-04 11:24  hitrjj  Views(437)  Comments(0Edit  收藏  举报