我正在使用matplotlib编写一个python 2.7绘图脚本,我希望它显示它刚刚绘制的内容,除非我从机构服务器上的非X会话中运行批处理绘图。对于这种情况,我只是告诉它不要显示任何东西。
但是我不希望它只是停止,如果我忘记这样做,这就是为什么我试图抓住RuntimeError异常,如下所示:
try:
pyplot.show()
except RuntimeError:
print 'Could not display figure. No X-session?'
except:
print 'Unexpected error:'
raise
然而,这样做,我仍然可以得到我所得到的而不试图抓住任何东西,即Traceback和:
RuntimeError: Invalid DISPLAY variable
它不会打印'意外错误',所以它不会遇到第二个,除了。
我错过了什么?这可能是非常简单的事情,因为我对此很陌生。
编辑:
在我尝试显示情节之前似乎抛出异常,所以可能完全是一个不同的问题。
答案 0 :(得分:0)
问题完全在别的地方。如果我从非X会话运行,我只是hava为matplotlib使用不同的后端。检查像cel建议和调用的DISPLAY变量
matplotlib.use('Agg')
在导入pyplot之前的非X会话上解决了这个问题。