web-dev-qa-db-ja.com

System-Notificationsがすぐに機能しない(「pynotifyのインポート」が失敗する)

ターミナルで次のコマンドを使用して高速プロジェクトを作成した場合:

_ quickly create ubuntu-application helloworld
_

次に、HelloworldWindow.pyに次の行を追加します。

_import sys
import pynotify
_

「import pynotify」という行は、アプリケーションを実行したいときにシステムで次のエラー出力を生成します

_quickly run
_

エラー出力:

/usr/lib/python2.7/dist-packages/gobject/constants.py:24:警告:g_boxed_type_register_static:アサーションg_type_from_name (name) == 0' failed import gobject._gobject /usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: specified class size for type PyGtkGenericCellRenderer 'は親型の_GtkCellRenderer' class size from gtk import _gtk /usr/lib/python2.7/dist-packages/gtk-2.0/gtk/__init__.py:40: Warning: g_type_get_qdata: assertion_ node!= NULL'より小さいgtk import _gtkから

アプリケーションは起動しません。

しかし、次のpython-applicationを実行したい場合

_ #!/usr/bin/python
 import sys
 import pynotify

 if __== "__main__":
if not pynotify.init("icon-summary-body"):
    sys.exit(1)

n = pynotify.Notification(
    "Notification",
    "Hello notify! It works!",
    "notification-message-im")
n.show()
_

例えばコードをファイル名「notify.py」に保存することで、ターミナルでコマンドを使用してコードを実行できます。

_python notify.py
_

通知は正常に機能します!

Via迅速に作成されたビアの問題は何ですかpython applicaton ??インポートが機能しないのはなぜですか??.

3
Marian Lux

私はまったく同じ問題に遭遇しました。

これが私の解決策です。

from gi.repository import Notify

Notify.init ('Application')
notification = Notify.Notification.new ('Title', 'Message', 'dialog-information')
notification.show ()
7
RobinJ

pynotifyは、PythonでGTKを使用する古い方法であるpygtkで動作するように作成されました。新しいメソッドはgobjectイントロスペクションと呼ばれ、次のようなインポートがあります。

from gi.repository import Gtk

同じアプリケーションで古いシステムと新しいシステムを使用することはできません。また、迅速なテンプレートは新しいシステムを使用するため、pynotifyを使用することはできません。

新しいシステムと互換性のある代替品 notify2 があります。まだ正確ではありませんが、バックポートリクエストを送信しました。

2
Thomas K