Closed 13werwolf13 closed 3 years ago
Насколько я понимаю пришло время обновить Notify с 0.7 до 0.9
ValueError: Namespace Notify not available for version 0.9 - так нету 0.9 версии вот и ругается - с 0.7 (как в оригинальном коде) - все работает.
О чем ошибка то - не понимаю?
не ошибка, указал на то что во многих дистрибутивах уже не опакечивают устаревшую версию
Можно конкретнее - в каких дистрибутивах Notify v.0.7 не поддерживается?
В ubuntu 18.04 наоборот ругается на v.0.9 (как у вас в примере). Т.о. одну версию для всех дистрибутивов не указать в принципе.
OpenSuSe Leap 15.0 OpenSuSe Leap 15.1 OpenSuSe Tumbleweed Arch И большинство дистрибутивов распространяющихся по модели Rolling release
К сожалению я не достаточно компетентен и не знаю насколько версии между собой обратносовместимы.
Теоретически можно просто убрать строчку 10 "require_version('Notify', '0.7')" и будет грузится версия которая найдется. Но при запуске индикатора будет ругаться:
indicator.py:11: PyGIWarning: Notify was imported without specifying a version first. Use
gi.require_version('Notify', '0.7') before import to ensure that the right version gets loaded.
from gi.repository import Notify
Да, так работает. но похоже больше на костыль чем на решение. Тем не менее спасибо.
Ну пока некостыльного решения не вижу. Тут пока вообще не много вижу вариантов:
Выбирать версию либы по дистрибутиву костыль безспорный, а как насчёт выбор версии либы по наличию самой либы?
... а как наличие то проверять... (я не знаю)
import PACKAGE
print(PACKAGE.__version__)
емнип как-то так
На импорт уже та ругань что я показывал выше.
вот тут https://pygobject.readthedocs.io/en/latest/guide/api/api.html нарыл gi.check_version(
Но она раизит ValueError если подходящей либы/версии нет.
С обработкой ексепшена импорт поучается просто монструозный.
А главное версии то надо знать что бы их проверять....
костыли - наше все....
В общем пока не вижу нормального решения.
Traceback (most recent call last): File "/usr/bin/yandex-disk-indicator", line 31, in
require_version('Notify', '0.9')
File "/usr/lib64/python3.7/site-packages/gi/init.py", line 133, in require_version
(namespace, version))
ValueError: Namespace Notify not available for version 0.9
OpenSuSe Tumbleweed https://build.opensuse.org/package/show/home%3ADead_Mozay/yandex-disk-indicator