![由于明显原因,软件属性-gtk(软件和更新)窗口未显示](https://linux22.com/image/1001081/%E7%94%B1%E4%BA%8E%E6%98%8E%E6%98%BE%E5%8E%9F%E5%9B%A0%EF%BC%8C%E8%BD%AF%E4%BB%B6%E5%B1%9E%E6%80%A7-gtk%EF%BC%88%E8%BD%AF%E4%BB%B6%E5%92%8C%E6%9B%B4%E6%96%B0%EF%BC%89%E7%AA%97%E5%8F%A3%E6%9C%AA%E6%98%BE%E7%A4%BA.png)
每当我单击图标启动时software and updates
,程序都会启动然后停止。我甚至尝试从命令行启动它,但同样的事情发生了。
/usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py:40: PyGIWarning: Gdk was imported without specifying a version first. Use gi.require_version('Gdk', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import GObject, Gdk, Gtk, Gio, GLib
/usr/lib/python3/dist-packages/softwareproperties/gtk/SoftwarePropertiesGtk.py:40: PyGIWarning: Gtk was imported without specifying a version first. Use gi.require_version('Gtk', '3.0') before import to ensure that the right version gets loaded.
from gi.repository import GObject, Gdk, Gtk, Gio, GLib
此行为很奇怪,因为命令退出时没有任何错误 ( echo $?
)。还有什么原因导致它像这样失败?
奇怪的是,如果我以 root 身份启动它(gksu software-properties-gtk
),它可以正常工作。
答案1
问题是我作为用户安装的 Python 版本没有包含运行该程序所需的 gtk 库。
当我以 root 身份运行它时,它使用系统的 python 安装,其中已经内置了所有这些库,因此它自然就可以工作了。
该问题已在后续版本中得到修复,software-properties-gtk
因为程序顶部的 shebang 行现在显示:
#!/usr/bin/python3
代替#!/usr/bin/env python3
。
后者导致它使用用户自己的 python3 版本,而前者(现在是事实上的)使用系统安装的 python3 版本