Кроссплатформенная библиотека уведомлений Python

Я делаю скрипт на Python, который должен работать в фоновом режиме и уведомлять пользователя об изменениях, и мне бы очень хотелось, чтобы он работал на разных платформах. Основная проблема в том, что у меня вообще нет доступа к Mac, поэтому кодирование специально для него может быть очень сложным. wxPython кажется огромным излишеством для простых всплывающих окон, так есть ли что-нибудь с меньшим размером?


person Phoshi    schedule 12.12.2009    source источник
comment
в Linux недостаточно хорошо уведомляет экранное меню? он уже доступен в Ubuntu/Fedora по умолчанию.   -  person jldupont    schedule 12.12.2009
comment
Да, OSD-уведомление идеально. Если мне нужно, я просто использую это на Linux, Snarl на Windows и Growl на Mac, но я полагаю, что было бы неплохо иметь что-то, если люди не хотят их устанавливать / не использовать.   -  person Phoshi    schedule 12.12.2009
comment
Поскольку ОС другая, что может означать кроссплатформенность? Можете ли вы привести примеры любых существующих пакетов, которые соответствуют вашему определению кроссплатформенности?   -  person S.Lott    schedule 12.12.2009
comment
Сам питон! Запустите один и тот же скрипт на любой ОС с минимальными изменениями, если таковые вообще будут.   -  person Phoshi    schedule 12.12.2009


Ответы (3)


Поставляется ли Python для Windows и Mac с оболочками Tk? Если это так, вы можете создать собственное окно уведомлений. Я не думаю, что у них очень простой API уведомлений (т.е. вы передаете ему строку, и на 5 секунд появляется симпатичное окно), однако, по крайней мере, у вас будет только одна кодовая база для обслуживания.

Я думаю о других кроссплатформенных приложениях, таких как Skype, Dropbox и Thunderbird. Skype и Thunderbird, кажется, развернули свои собственные, а Dropbox пошел по пути, зависящему от платформы.

person JasonSmith    schedule 12.12.2009
comment
Я только что попробовал import Tkinter, и ничего не пошло не так, поэтому я думаю, что это должно сработать! Спасибо :) - person Phoshi; 12.12.2009

Adobe Wave — это кроссплатформенная система уведомлений, однако я ею не пользовался и не пользуюсь считаю, что это сделка, ориентированная на рабочий стол, а скорее что-то для многофункциональных интернет-приложений и подключения к веб-сайтам. Тем не менее, это своего рода кросс-платформенное уведомление, поэтому, возможно, его стоит посмотреть.

Это напомнило мне, что вы можете найти систему уведомлений AIR, которую можно каким-то образом активировать из Python. На ум приходит Mono с GTK#, так как он поддерживает три основные настольные платформы. См. пример GtkSharpNotification.

Наконец, для моего третьего удара, возможно, кросс-платформенный набор инструментов с графическим интерфейсом, такой как wxWidgets, имеет виджет, который вам нужен.

person JasonSmith    schedule 12.12.2009
comment
Всем хороших предложений! К сожалению, все это действительно кажется излишним буквально из-за коробки, которая появляется на экране и исчезает с него! :( - person Phoshi; 12.12.2009
comment
Да, это определенно зависит от вашей ситуации и от того, является ли это розничным приложением, бизнес-приложением или чем-то еще. Признаюсь, ни одна из моих идей не кажется мне убедительной, но вы пытаетесь избежать поддержки трех кодовых баз в долгосрочной перспективе. - person JasonSmith; 12.12.2009
comment
Это хорошие идеи, и я бы, конечно, рассмотрел их, если бы это был более крупный проект, но это совсем не так :( - person Phoshi; 12.12.2009
comment
Только что добавил второй откровенный ответ о Tk. Извините, у меня закончились идеи! :) - person JasonSmith; 12.12.2009

Похоже, что одним из способов будет что-то вроде Growl/GNTP. Вы смотрели библиотеку gntp Python?

person Christopher Smith    schedule 02.08.2012