无法在python中捕获RuntimeError

时间:2015-11-01 16:04:47

标签: python matplotlib

我正在使用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

它不会打印'意外错误',所以它不会遇到第二个,除了。

我错过了什么?这可能是非常简单的事情,因为我对此很陌生。

编辑:

在我尝试显示情节之前似乎抛出异常,所以可能完全是一个不同的问题。

1 个答案:

答案 0 :(得分:0)

问题完全在别的地方。如果我从非X会话运行,我只是hava为matplotlib使用不同的后端。检查像cel建议和调用的DISPLAY变量

matplotlib.use('Agg')

在导入pyplot之前的非X会话上解决了这个问题。