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 啟動器啟動 Gtk 應用程序,例如 gedit,但不能從終端啟動。

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

相關內容