如何解决Gdk-CRITICAL **:17:13:03.280:gdk_cursor_new_for_display:断言'GDK_IS_DISPLAY(显示)'失败

问题描述 投票:0回答:3

升级到 ubuntu 20.04 后,我从 crontab 启动的 python 脚本中收到此错误:

Unable to init server: Could not connect: Connection refused
Unable to init server: Could not connect: Connection refused

(generate_clocks_graphs.py:4888): Gdk-CRITICAL **: 17:13:03.280: gdk_cursor_new_for_display: assertion 'GDK_IS_DISPLAY (display)' failed

有没有办法更好地理解这个错误?我找不到解决方案 奇怪的是,如果我手动运行脚本,它会完美运行

python python-3.x ubuntu cron
3个回答
3
投票

查看代码,我意识到我没有添加以下代码行:

import matplotlib
matplotlib.use('Agg')

输入它们后,脚本也可以运行 crontab

谢谢你


0
投票

Matplotlib 后端依赖于某些后端来实际渲染绘图。默认后端是

agg
后端。该后端仅渲染 PNG。 Matplotlib 后端文档

#Three lines to make our compiler able to draw:
import sys
import matplotlib
matplotlib.use('Agg')

import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv('data.csv')

df.plot()
plt.show()
#Two  lines to make our compiler able to draw:
plt.savefig(sys.stdout.buffer)
sys.stdout.flush()

此代码在w3schools

中执行

0
投票

上述解决方案对我不起作用。但如果你尝试使用虚拟环境,它应该会消失。

python3 -m venv venv
source venv/bin/activate
pip install numpy matplotlib

然后从 venv 中运行脚本。

© www.soinside.com 2019 - 2024. All rights reserved.