I have the following sample script coded in python 3.8.2:
import gi
gi.require_version("Gtk", "3.0")
from gi.repository import Gtk
class GridWindow(Gtk.Window):
def __init__(self):
Gtk.Window.__init__(self, title="Grid Example")
grid = Gtk.Grid()
self.add(grid)
grid.set_row_spacing(2)
grid.set_column_spacing(4)
button1 = Gtk.Button(label="Button 1")
button2 = Gtk.Button(label="Button 2")
button3 = Gtk.Button(label="Button 3")
button4 = Gtk.Button(label="Button 4")
button5 = Gtk.Button(label="Button 5")
button6 = Gtk.Button(label="Button 6")
grid.add(button1)
grid.attach(button2, 1, 0, 2, 1)
grid.attach_next_to(button3, button1, Gtk.PositionType.BOTTOM, 1, 2)
grid.attach_next_to(button4, button3, Gtk.PositionType.RIGHT, 2, 1)
grid.attach(button5, 1, 2, 1, 1)
grid.attach_next_to(button6, button5, Gtk.PositionType.RIGHT, 1, 1)
win = GridWindow()
win.connect("destroy", Gtk.main_quit)
win.show_all()
Gtk.main()
That is only dummy example. I intend run this code through a cron entry on crontab file, but when I do that I get the following error:
Unable to init server: Could not connect: Connection refused
Traceback (most recent call last):
File "/home/dggt/Vscode/scratches/PythonExamples/gui_example/gi_config/sample_grid.py", line 31, in <module>
win = GridWindow()
File "/home/dggt/Vscode/scratches/PythonExamples/gui_example/gi_config/sample_grid.py", line 9, in __init__
Gtk.Window.__init__(self, title="Grid Example")
File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 520, in __init__
raise RuntimeError(
RuntimeError: Gtk couldn't be initialized. Use Gtk.init_check() if you want to handle this case.
What makes this error more weird is the fact that when it is run through my IDE it perfectly works, in other words, the window with the buttons are display on screen. This is my specs:
- Ubuntu 20.04
- python 3.8.2
This is my crontab entry:
- */1 * * * * /bin/python3 /home/dggt/Vscode/scratches/PythonExamples/gui_example/gi_config/sample_grid.py
This is my cron log header:
From dggt@dggt Mon Jun 29 11:21:01 2020
Return-Path: <dggt@dggt>
X-Original-To: dggt
Delivered-To: dggt@dggt
Received: by dggt (Postfix, from userid 1000)
id 4F71A87D05; Mon, 29 Jun 2020 11:21:01 -0300 (-03)
From: root@dggt (Cron Daemon)
To: dggt@dggt
Subject: Cron <dggt@dggt> /bin/python3 /home/dggt/Vscode/scratches/PythonExamples/gui_example/gi_config/sample_grid.py
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
X-Cron-Env: <PATH=/home/dggt/.local/bin:/home/dggt/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin>
X-Cron-Env: <SHELL=/bin/sh>
X-Cron-Env: <HOME=/home/dggt>
X-Cron-Env: <LOGNAME=dggt>
Message-Id: <20200629142101.4F71A87D05@dggt>
Date: Mon, 29 Jun 2020 11:21:01 -0300 (-03)
Has anybody any idea what could be going wrong? Have I missed some predefined configuration that had to be done before I could run this script?