Найти в Дзене
Python Django

​​Показываем уведомления на рабочем столе

​​Показываем уведомления на рабочем столе

На macOS это очень просто, даже не нужно ставить дополнительный софт и модули, а использовать встроенный osascript.

import os

def notify_macos(title, text):

os.system("""

osascript -e 'display notification "{}" with title "{}"'

""".format(text, title))

notify_macos("Поздравляю", "Ген супер-человека найден!")

На Linux можно пойти схожим путем, задействуя программу notify-send (если у вас Ubuntu, то она почти наверняка уже установлена):

import subprocess as s

def notify_linux(message, title):

subprocess.Popen(['notify-send', title, message])

return

Разработчики на Windows, и о вас я не забуду. Попробуйте win10toast.

# pip install win10toast

from win10toast import ToastNotifier

toaster = ToastNotifier()

toaster.show_toast("Заголовок",

"Текст",

duration=5)

Есть ли кросс-платформенное решение? Да, это библиотека plyer от создателей Kivy.

# pip install plyer

from plyer import notification

notification.notify(

title='Заголовок',

message='Сообщение',

app_icon=None, # e.g. 'C:\\icon_32x32.ico'

timeout=5, # секунд

)

plyer умеет не только уведомления, но и предоставляет унифицированный интерфейс к всевозможным API декстопных и мобильных ОС.

Однако, plyer потребует установки дополнительного софта или модулей для каждой платформы. Когда вы в первый раз запустите код, не удивляйтесь ошибкам. Например, на macOS мне потребовалось установить Cython и pyobjus. Библиотека plyer сам по себе не вытягивает эти зависимости, поэтому в вашем проекте не забудьте их добавить самостоятельно (например, в requirements.txt)