fvwm-menu-зависание рабочего стола во время создания меню и сбой с исключением python при использовании —get-menu

#python #ubuntu

#python #ubuntu

Вопрос:

Я обновился до ubuntu 20.04 и у меня есть fvwm, у меня был fvwm-menu-desktop, который создавал меню для меня, но в последнее время он начал вести себя совершенно плохо:

(Я использую команду fvwm-menu-desktop --desktop gnome --type gtk --theme masalla --title FvwmKde для создания своего меню)

  1. он генерирует меню в два раза больше
  2. он зависает на полпути (дважды) непосредственно перед созданием пункта меню Android Studio (это подсказка?)
  3. когда я пытаюсь проверить доступные меню рабочего стола, он выдает ошибку исключения python:
 $ fvwm-menu-desktop --get-menus desktop
Traceback (most recent call last):
  File "/usr/bin/fvwm-menu-desktop", line 821, in <module>
    main()
  File "/usr/bin/fvwm-menu-desktop", line 388, in main
    parsemenus(menulist, desktop)
  File "/usr/bin/fvwm-menu-desktop", line 677, in parsemenus
    parsemenu(xdg.Menu.parse(menu), name, title)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 1137, in parse
    return XMLMenuBuilder(debug).parse(filename)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 641, in parse
    menu = self.parse_menu(tree.getroot(), filename)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 659, in parse_menu
    self.parse_node(node, filename, menu)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 668, in parse_node
    menu = self.parse_menu(child, filename)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 659, in parse_menu
    self.parse_node(node, filename, menu)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 668, in parse_node
    menu = self.parse_menu(child, filename)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 659, in parse_menu
    self.parse_node(node, filename, menu)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 691, in parse_node
    parent.Rules.append(self.parse_rule(child))
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 768, in parse_rule
    return Rule(type, tree)
  File "/usr/lib/python3/dist-packages/xdg/Menu.py", line 421, in __init__
    self.code = compile(self.expression, '<compiled-menu-rule>', 'eval')
ValueError: Name node can't be used with 'True' constant
  

У меня есть
Ubuntu 20.04
fvwm 2.6.8 скомпилирован 14 января 2019 года в 19:59:25 с поддержкой: ReadLine, rPlay, Stroke, XPM, SVG, Shape, XShm, SM, Bidi text, Xinerama, XRender, XCursor, XFT, NLS

  mau  ~  python --version
Python 2.7.18
 mau  ~  python3 --version
Python 3.8.5
  

Спасибо

Ответ №1:

Я знаю, что это поздний ответ, но я только что столкнулся с той же проблемой.

Это связано с изменением в Python 3.8.4, вызывающим проблему в pyxdg. Вот отчет об ошибке: https://gitlab.freedesktop.org/xdg/pyxdg/-/issues/20

И вот исправление для Menu.py : https://gitlab.freedesktop.org/xdg/pyxdg/-/commit/9b913229ace838958e51a16cabc41905a2460f7b

Я обновил свой /usr/lib/python3-dist-packages/xdg/Menu.py и проблема исчезла.