Если я создаю быстрый проект со следующей командой в терминале:
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: 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 'меньше, чем узел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
родительского типа! 1112] Приложение не запустится.
Но если я хочу запустить следующее 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()
, например. сохранив код в файле с именем «notify.py», я могу запустить код с помощью команды в терминале:
python notify.py
и уведомление работает нормально!
Что такое проблема с быстро создаваемым приложением Python? Почему импорт не работает ?? Я новичок с быстро и Python.
Я только что столкнулся с точно такой же проблемой.
Вот мое решение.
from gi.repository import Notify
Notify.init ('Application')
notification = Notify.Notification.new ('Title', 'Message', 'dialog-information')
notification.show ()
pynotify был написан для работы с pygtk, более старым способом использования GTK через Python. Новый метод называется gobject introspection и имеет следующий вид импорта:
from gi.repository import Gtk
Вы не можете использовать старую и новую систему в одном приложении, а шаблон быстрого использования использует новую систему, поэтому вы можете не используйте pynotify с ним.
У меня есть замена, совместимая с новой системой: notify2 . Это еще не точно, но я отправил запрос на обратный порт.