Acabei de encontrar exatamente o mesmo problema.
Aqui está minha solução.
from gi.repository import Notify
Notify.init ('Application')
notification = Notify.Notification.new ('Title', 'Message', 'dialog-information')
notification.show ()
Se eu criar um projeto rápido com o seguinte comando no terminal:
quickly create ubuntu-application helloworld
e adicione no HelloworldWindow.py as seguintes linhas,
import sys
import pynotify
a linha "importar pynotify" produz a seguinte saída de erro no meu sistema quando eu quero executar o aplicativo com
quickly run
erro-saída:
/usr/lib/python2.7/dist-packages/gobject/constants.py:24: Warning: g_boxed_type_register_static: assertion
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' is smaller than the parent type'sGtkCellRenderer' 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' failed from gtk import _gtk
O aplicativo não será iniciado.
Mas se eu quiser executar o seguinte aplicativo python
#!/usr/bin/python
import sys
import pynotify
if __name__ == "__main__":
if not pynotify.init("icon-summary-body"):
sys.exit(1)
n = pynotify.Notification(
"Notification",
"Hello notify! It works!",
"notification-message-im")
n.show()
por exemplo. salvando o código em um nome de arquivo "notify.py", eu sou capaz de executar o código com o comando no terminal:
python notify.py
e a notificação funciona bem!
Qual é o problema com a aplicação rápida de python? Por que a importação não está funcionando? Eu sou novo com rapidez e python.
Acabei de encontrar exatamente o mesmo problema.
Aqui está minha solução.
from gi.repository import Notify
Notify.init ('Application')
notification = Notify.Notification.new ('Title', 'Message', 'dialog-information')
notification.show ()
pynotify foi escrito para trabalhar com o pygtk, uma maneira antiga de usar o GTK através do Python. O novo método é chamado de introspecção de objetos e tem importações como:
from gi.repository import Gtk
Você não pode usar o sistema antigo e o novo no mesmo aplicativo, e o modelo rápido usa o novo sistema, portanto você não pode usar pynotify com ele.
Eu tenho um substituto compatível com o novo sistema: notify2 . Ainda não está preciso, mas enviei um pedido de backport para ele.