【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