Matplotlib:检查是否未定义显示

Foo*_*Bar 2 python ssh matplotlib

有时我通过 ssh 运行我的脚本。这个答案告诉我要设置

import matplotlib
#matplotlib.use('Agg') # Must be before importing matplotlib.pyplot or pylab!
import matplotlib.pyplot as plt
Run Code Online (Sandbox Code Playgroud)

当我undefined SCREEN通过 ssh 运行脚本时出现错误。但是,有了该序言,当我在本地计算机上运行脚本时,我无法以交互方式查看图形。

检查屏幕是否定义的条件是什么?我想做

if SCREEN == None:
  matplotlib.use('Agg')
Run Code Online (Sandbox Code Playgroud)

正确的代码如何,我该如何检查?

ert*_*ion 5

看起来最简单的方法是检查“DISPLAY”环境变量

import os

# 'DISPLAY' will be something like this ':0'
# on your local machine, and None otherwise
if os.environ.get('DISPLAY') is None:
    matplotlib.use('Agg')
Run Code Online (Sandbox Code Playgroud)