当前位置: 首页 > 知识库问答 >
问题:

运行一个python脚本与cron, matplotlib错误

谷梁存
2023-03-14

我正在尝试使用cron运行python脚本。脚本从命令行运行时没有问题,但从cron运行时matplotlib出现问题。错误如下。

Traceback(最近的调用最后):

文件"/home/ubuntu/python/spread.py",第154行,plot_spread(lat,lon, 文件,均值,maxs,mins,stdp,stdm,ens_members)

文件“/home/ubuntu/python/spread.py”,第81行,在plot\u spread plt中。在(x,最大值,stdp,color='r',alpha=0.2)之间填充

file"/usr/lib/python2.7/dist-包/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py",第2785行,fill_betweenax=gca()

gca返回gcf()中的文件“/usr/lib/python2.7/dist packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py”,第928行。gca(**kwargs)

gcf返回图()中的第578行文件“/usr/lib/python2.7/dist packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py”

文件“/usr/lib/python2.7/dist packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/pyplot.py”,第527行,图**kwargs)

文件“/usr/lib/python2.7/dist packages/matplotlib-1.5.0\u 818.gfd83789-py2.7-linux-x86\u 64.egg/matplotlib/backends/backend\u qt4agg.py”,第46行,在new\u figure\u manager返回new\u figure\u manager\u给定图(num,thisFig)

文件“/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_figure canvas=FigureCanvasQTAgg(图)

文件“/usr/lib/python2.7/dist packages/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt4agg.py”,init FigureCanvasQT中的第76行。初始(自我,图形)

文件"/usr/lib/python2.7/dist-包/matplotlib-1.5.0_818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt4.py",第68行,在init_create_qApp()中

文件“/usr/lib/python2.7/dist packages/matplotlib-1.5.0818.gfd83789-py2.7-linux-x86_64.egg/matplotlib/backends/backend_qt5.py”,第138行,在_create_qApp raise RuntimeError中(“显示变量无效”)

运行时错误:显示变量无效

共有1个答案

吴炎彬
2023-03-14

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

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

这些链接可能也很有用:

当DISPLAY未定义时,使用matplotlib生成PNG

在没有运行的X服务器的情况下生成matplotlib图

希望这是有帮助的!

 类似资料:
  • 问题内容: 这可能是一个非常简单的问题,但是如何每两天在我的fedora dist上运行一个python脚本? 谢谢 安东尼斯 问题答案: 这是关于cron的问题。首先是在python脚本顶部添加SHEBANG行。 使您的脚本可执行 然后执行crontab -e并添加

  • 问题内容: 我有一个想要添加到cron的python脚本。 脚本具有+ x权限。 如何将其添加到crontab?(例如,我希望它每分钟运行一次)。 重要提示:当我(使用外壳)导航到脚本的文件夹时,无法使用“ ./script_name.py”运行它;它不起作用。但是,当我使用“ Python script_name.py”运行它时,一切正常。 问题答案: 从您应该运行该脚本和脚本符合下列条件: 可

  • 问题内容: 我想从另一个Python脚本运行一个Python脚本。我想像使用命令行一样传递变量。 例如,我会跑我的,将通过值(0,1,2,3)的列表迭代第一个脚本,并通过那些到第二脚本,然后,等 我发现了Stack Overflow问题1186789,这是一个类似的问题,但是ars的答案调用了一个函数,在这里我想运行整个脚本,而不仅仅是函数,而balpha的答案则调用了脚本,但没有参数。我将其更改

  • 所以我有主python脚本,我想从我的主文件中调用另一个python脚本,但是,每当我这样做的时候,我调用的脚本就会超过原来的脚本控制台中的主脚本?

  • 问题内容: 在Windows Vista上,我需要一个脚本来启动(以激活virtualenv)脚本: 然后,在虚拟环境中,开始到文件夹中的: 我应该怎么做?我应该使用什么模块? 问题答案: 您可以激活您的virtualenv,然后使用bat文件启动服务器。将此脚本复制到文件中,并以.bat扩展名保存(例如runserver.bat) 然后,您可以运行此bat文件(只需双击)以启动服务器

  • 问题内容: 如何运行多个python脚本?此刻我像这样跑一个。 我已经尝试过了,但是不起作用:仅运行第一个脚本。另外,我尝试使用这样的单个文件; 但是,这也不起作用。 问题答案: 使用Bash: 这就是整个脚本。它将同时运行两个Python脚本。 Python本身可以做同样的事情,但要花更多的时间输入,对于眼前的问题来说是一个不好的选择。 我认为尽管您采取错误的方法来解决问题很可能,但我想听听您的