This guide will give you two very easy ways to create desktop
notifications in Windows using Python. One will use
and the other will use
This guide is aimed at Windows. For Linux notifications with libnotify, check out my tutorial Desktop Notifications in Linux with Python.
This was tested with Python 3.6 in Windows 10.
win10toast package for Python has the simplest interface, but is
also limited. It's the easiest way to get started.
is available on GitHub.
Under the hood,
win10toast uses the
Review the source code to see the relatively ugly underlying code that is
necessary to interact with the Windows API.
That's not an insult to the author of the library, just a comment about
how complex the Windows API has become over time.
First, install the dependency:
python -m pip install win10toast
# python -m pip install win10toast from win10toast import ToastNotifier # One-time initialization toaster = ToastNotifier() # Show notification whenever needed toaster.show_toast("Notification!", "Alert!", threaded=True, icon_path=None, duration=3) # 3 seconds # To check if any notifications are active, # use `toaster.notification_active()` import time while toaster.notification_active(): time.sleep(0.1)
Plyer is a cross-platform library that actually works on mobile too, when used with Kivy. Plyer has way more than just notification tools. It can do screenshots, text-to-speech, vibration, GPS, bluetooth, audio, accelerometer, and more! If you want to learn more about using Kivy check out some of my streams:
First, install the
plyer Python package dependency:
python -m pip install plyer
Here is some example usage:
# python -m pip install plyer from plyer import notification notification.notify( title='Here is the title', message='Here is the message', app_icon=None, # e.g. 'C:\\icon_32x32.ico' timeout=10, # seconds )
Refer to the Official Plyer Docs for more options.
After this you should know how to create simple desktop notifications in Windows with custom durations and icons. These are not the only methods for creating Windows desktop notifications, but they are the easiest methods I found. Other libraries like PyQt5 offer more implementations.