Я (пытаюсь) записать простой сценарий Python для основанной на человечности ОС. Как часть сценария, также показывают уведомление. Теперь, я прошел много сообщений здесь, но с каждым у меня есть сопроводительный вопрос (и некоторая проблема). Следующее является различными путями, я уже попробовал (и связал проблему),
Используя notify2
Это в основном работало хорошо. Однако со следующей проблемой,
a. По некоторым причинам значок не показывают в пузыре уведомления и нет никакой ошибки. Простой оператор печати,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 Уведомляют
После файла привет-единицы здесь. Я пытался использовать, Уведомляют. Я не смог получить это выполнение вообще! В прошлый раз, когда я попробовал, я получил ошибку 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. При попытке искать простое (и корректный) реализация, такая как реализация уведомления, была довольно трудоемкой и сбивала с толку. Кроме предложения правильного способа реализовать уведомления, я буду ценить, если кто-то мог бы указать на меня в правильном направлении, чем-то как руководство разработчика андроида, которое показывает или имеет ссылки API.
И прежде чем любой спрашивает о моих предпочтениях разработки, я более доволен Python. Относительно GUI снова я не уверен, которые соединяют каналом для взятия, хотя GTK, кажется, более популярен.
Определенно третья, с помощью или subprocess.call()
или subprocess.Popen()
. Замечание импортировать, но subprocess
. Ничто нового устанавливать. Простой и легкий, всегда работы отлично.
Несколько примеров: