gpt4 book ai didi

python - Python matplotlib 作为 cron 作业运行时出现 QxcbConnection 错误

转载 作者:行者123 更新时间:2023-11-28 17:20:38 25 4
gpt4 key购买 nike

我有一个计划作为 cron 作业运行的绘图脚本,但抛出了一个错误。该脚本是用Python 3.5编写的,下面给出了一个例子。

import pylab as pl

fig = pl.figure(figsize=(4, 4))
ax = fig.add_supblot(111)

ax.plot(range(10), range(10))

我通过以下行在 bash 脚本中调用它: ~/anaconda3/bin/ipython 测试.py

我的 cron 报告中出现以下错误:

QXcbConnection: Could not connect to display 
/datadrive/cronjobs/test.sh: line 2: 1459 Aborted (core dumped) ~/anaconda3/bin/python ~/Desktop/test.py

我什至尝试直接从 crontab 调用,但得到了同样的错误。

我已经确认我可以从终端运行脚本。这两个工作:

$ ~/anaconda3/bin/ipython ~/Desktop/test.py
$ bash /datadrive/cronjobs/test.sh

似乎 matplotlib 不喜欢在 cron 下运行,但我不明白为什么。有谁知道这是为什么以及如何解决它?

最佳答案

我在 SO here 上遇到了类似的问题.诀窍是在 pylab 之前加载 matplotlib 并调用 matplotlib.use('Agg')。例如

import matplotlib
matplotlib.use('Agg')
import pylab

etc. etc. etc.

显然,当在 cron 作业下运行时,没有事件的图形后端(或者其他东西,我不太了解那部分)。将 matplotlib 的 .use 设置为“Agg”可以解决这个问题。

关于python - Python matplotlib 作为 cron 作业运行时出现 QxcbConnection 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41814254/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com