使用cron运行python脚本,matplotlib错误

时间:2016-01-14 22:47:15

标签: python matplotlib cron

我正在尝试使用cron运行python脚本。该脚本在没有问题的情况下从命令行运行,但从cron运行时遇到matplotlib问题。错误如下。

追踪(最近一次呼叫最后一次):

File" /home/ubuntu/python/spread.py" ;,第154行,在     plot_spread(lat,lon,vals,mean,maxs,mins,stdp,stdm,ens_members)

文件" /home/ubuntu/python/spread.py",第81行,在plot_spread     plt.fill_between(x,maxs,stdp,color =' r',alpha = 0.2)

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py" ;,第2785行,在fill_between中     ax = gca()

文件" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py" ;,第928行,在gca     return gcf()。gca(** kwargs)

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py" ;,第578行,在gcf中     return figure()

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py" ;,第527行,在图中     ** kwargs)

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt4agg.py",第46行,在new_figure_manager中     return new_figure_manager_given_figure(num,thisFig)

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt4agg.py",第53行,在new_figure_manager_given_figure中     canvas = FigureCanvasQTAgg(图)

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt4agg.py",第76行,在 init 中     FigureCanvasQT。 init (self,figure)

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt4.py",第68行,在 init 中     _create_qApp()

File" /usr/lib/python2.7/dist-packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt5.py",第138行,在_create_qApp中     引发RuntimeError('无效的DISPLAY变量')

RuntimeError:无效的DISPLAY变量

1 个答案:

答案 0 :(得分:2)

当我尝试使用cron在python中导入matplotlib.pyplot时,我遇到了类似的错误。您可以强制matplotlib不使用任何Xwindows后端。这样做:

import matplotlib as mpl
mpl.use('Agg')
import matplotlib.pyplot as plt

这些链接也可能有用:

Generating a PNG with matplotlib when DISPLAY is undefined

Generating matplotlib graphs without a running X server

希望这有用!