Отображение уведомлений в установках на основе Ubuntu
Я пытаюсь написать простой скрипт на python для ОС на основе Ubuntu. В рамках сценария также отображается уведомление. Теперь я прочитал несколько постов здесь, но с каждым из них у меня есть сопутствующий вопрос (и некоторая проблема). Ниже приведены различные способы, которые я уже пробовал (и связанные с этим проблемы),
Использование notify2
Это в значительной степени сработало хорошо. Тем не менее, со следующей проблемой,
а. По какой-то причине значок не отображается в окне уведомлений, и нет ошибки. Простое печатное заявление,print(os.path.abspath('icon.svg')
, возвращая путь, возвращает правильный путь, но изображение по-прежнему отсутствует.
Вот точный код, который я использую,
def show_notification(title, content):
notify2.init(title)
n = notify2.Notification(title, content, os.path.abspath('icon.svg'))
n.show()
Использование из gi.repository import Notify
После файла привет-единства здесь. Я пытался использовать Notify. Я не смог запустить это вообще! В последний раз, когда я пытался, я получил ошибку ImportError: cannot import name Notify
запустив скрипт как python test.py
,
Выполнение того же с использованием Python3, как в python3 test.py
приводит к другой ошибке ImportError: cannot import name Notify, introspection typelib not found
,
Чтобы преодолеть это, я попытался установить python-gobject
а также libnotify-bin
но они уже установлены в моей системе (элементарная ОС Loki). Ошибки все еще сохраняются.
Использование подпроцесса
Это сработало без проблем, но я не уверен, что это лучший способ показать уведомление, так как я намерен показывать регулярные уведомления. Это код, который я использовал,
import subprocess as s
s.call(['notify-send','foo','bar'])
Основной вопрос
Поскольку я впервые пытаюсь разработать для сообщества Linux (точнее, Ubuntu), я довольно новичок в разработке для Linux. Попытка поиска простой (и правильной) реализации, такой как уведомление, была довольно трудоемкой и запутанной. Помимо предложения о правильном способе реализации уведомлений, я был бы признателен, если бы кто-то мог указать мне правильное направление, что-то вроде руководства разработчика Android, которое показывает или имеет ссылки API.
И прежде чем кто-нибудь спросит о моих предпочтениях в разработке, мне больше нравится Python. Что касается GUI, опять же я не уверен, какой путь выбрать, хотя GTK кажется более популярным.
1 ответ
Вызов уведомлений из приложений на Ubuntu
Определенно третий, используя либо subprocess.call()
или же subprocess.Popen()
, Отмечая импортировать но subprocess
, Ничего нового для установки. Просто и легко, всегда работает отлично.
Несколько примеров: