Страница 1 из 1

python3-aptdaemon [async => Invalid Syntax]

Добавлено: 12 июл 2019, 01:08
Chocobo
Небольшая заметка, возникшая в рамках экспериментов с LMDE на базе Buster на тему aptdaemon, который не хочет в своих текущих версиях ubuntu/mint (и оный же бэкпортирован в LMDE) работать с python 3.7+
что, в частности приводит к ошибке в менеджере программ (mintinstall)

Код: Выделить всё

workbook:~$ mintinstall
Traceback (most recent call last):
  File "/usr/lib/linuxmint/mintinstall/mintinstall.py", line 26, in <module>
    from installer import installer
  File "/usr/lib/linuxmint/mintinstall/installer/installer.py", line 11, in <module>
    from installer import cache, _flatpak, _apt
  File "/usr/lib/linuxmint/mintinstall/installer/cache.py", line 11, in <module>
    from installer import _apt
  File "/usr/lib/linuxmint/mintinstall/installer/_apt.py", line 11, in <module>
    import aptdaemon.client
  File "/usr/lib/python3/dist-packages/aptdaemon/client.py", line 1570
    async = reply_handler and error_handler
          ^
SyntaxError: invalid syntax
Ноги растут из чейнджлога 3.7 где указано, что
changelog писал(а):Backwards incompatible syntax changes:
- async and await are now reserved keywords.
таким образом возникает конфликт имени переменной с зарезервированным оператором:
Снимок экрана в 2019-07-12 00-56-49.png
А так как змейка3.7 версии все ближе , и уже по умолчанию устанавливается в Debian 10 Buster - в данном случае на ум напрашивается прямое решение в лоб, перебить идентификатор и не пересекаться с ограничениями языка)
sudo sed -i 's/async/async_/g' /usr/lib/python3/dist-packages/aptdaemon/client.py

С этим быстрофиксом все работает норм :)
Снимок экрана в 2019-07-12 01-01-56.png

python3-aptdaemon [async => Invalid Syntax]

Добавлено: 12 июл 2019, 05:34
vir0id
Вот тебе и вечные минусы питона. Постоянный конфликт версий. :cray2:

python3-aptdaemon [async => Invalid Syntax]

Добавлено: 12 июл 2019, 05:59
rogoznik
Так это не проблема питона - это проблема прогеров, которые так переменную обозвали. Ну не знали они что в новой версии языка завезут такие ключевые слова.

python3-aptdaemon [async => Invalid Syntax]

Добавлено: 12 июл 2019, 11:08
Chocobo
vir0id, не сказал бы.
обратную совместимость нечасто ломают там. даже с 2 на 3 переход в основном был без особых болей.
ну и вводя любой новый операнд - ты автоматом таких кодеров подведешь под рефакторинг, с этим нифига не поделаешь)