Gtk3 앱이 터미널에서 실행되지 않습니다. 용어에서는 "RuntimeError: Gtk를 초기화할 수 없습니다."라는 메시지가 표시되지만 Unity 실행기에서는 확인됩니다.

Gtk3 앱이 터미널에서 실행되지 않습니다. 용어에서는 "RuntimeError: Gtk를 초기화할 수 없습니다."라는 메시지가 표시되지만 Unity 실행기에서는 확인됩니다.

일반적으로 직장에서는 퇴근할 때 화면을 잠그고 일주일에 한 번 로그오프하며 거의 재부팅하지 않습니다. 모든 패키지가 최신 상태입니다.

어제 재부팅했는데 오늘 아침에 Python3/Gtk3 앱을 시작할 수 없습니다.

JeanCoiron@myhostname:/opt/myapps/dev$ ./mywindow.py 
Traceback (most recent call last):
  File "./mywindow.py", line 4, in <module>
    from gi.repository import Gtk
  File "/usr/lib/python3/dist-packages/gi/importer.py", line 76, in load_module
    dynamic_module._load()
  File "/usr/lib/python3/dist-packages/gi/module.py", line 224, in _load
    overrides_modules = __import__('gi.overrides', fromlist=[self._namespace])
  File "/usr/lib/python3/dist-packages/gi/overrides/Gtk.py", line 1533, in <module>
    raise RuntimeError("Gtk couldn't be initialized")
RuntimeError: Gtk couldn't be initialized

이 예제 앱의 코드:

#!/usr/bin/python3
# Filename: mywindow.py

from gi.repository import Gtk
from gi.repository import Gdk

class MyWindow(Gtk.Window):
    def __init__(self):
        Gtk.Window.__init__(self, title="My window")

        self.mainGrid = Gtk.Grid()
        self.add(self.mainGrid)

        self.lbl = Gtk.Label("Hello World")
        self.mainGrid.add(self.lbl)

mainWin = MyWindow()
mainWin.connect("delete-event", Gtk.main_quit)
mainWin.show_all()

Gtk.main()

Geany에서 실행하면 표준 터미널이 아닌 작동합니다. 내 모든 python3/gtk3 앱에도 동일합니다. Geany 터미널에서 echo $PATH는 표준 터미널에서와 정확히 동일합니다. 현재 DISPLAY=':0', DISPLAY var 없이 DISPLAY='localhost:0'으로 시도했습니다.

어디서 검색해야 할지 아시나요?

-편집하다-

이는 Gtk 문제에만 해당됩니다. Unity 런처에서는 gedit와 같은 Gtk 앱을 실행할 수 있지만 터미널에서는 실행할 수 없습니다.

JeanCoiron@myhostname:/opt/myapps/dev$ gedit /usr/lib/python3/dist-packages/gi/overrides/Gtk.py
Cannot open display: 
Run 'gedit --help' to see a full list of available command line options.
JeanCoiron@myhostname:/opt/myapps/dev$ echo $DISPLAY
:0

관련 정보