%20%E3%82%A6%E3%82%A3%E3%83%B3%E3%83%89%E3%82%A6%E3%81%8C%E4%BD%95%E3%82%89%E3%81%8B%E3%81%AE%E7%90%86%E7%94%B1%E3%81%A7%E8%A1%A8%E7%A4%BA%E3%81%95%E3%82%8C%E3%81%AA%E3%81%84.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
この問題は、プログラムの先頭のシバン行が次のように記述されるようになったため、 の後のバージョンでは修正されました。
#!/usr/bin/python3
の代わりに#!/usr/bin/env python3
。
後者はユーザー独自のバージョンのpython3を使用するのに対し、前者(現在ではデファクト)はシステムにインストールされたバージョンのpython3を使用します。