Поиск по сайту:

Исправить TypeCatcher (установщик Google Fonts) не запускается в Ubuntu 22.04.

В этом простом руководстве показано, как исправить проблему с запуском TypeCatcher в Ubuntu 22.04 или другом Linux с Python 3.9 и выше.

TypeCatcher — это простое GTK-приложение для загрузки и установки веб-шрифтов Google для автономного использования. Приложение доступно для установки в Ubuntu Software для всех текущих выпусков Ubuntu. Однако он не запускается в Ubuntu с 21 октября.

TypeCatcher, загрузите и установите Google Fonts

При попытке запустить его из командной строки выдает что-то вроде этого:

Traceback (последний вызов — последний):
Файл «/usr/lib/python3/dist-packages/typecatcher_lib/Application.py», строка 30, в on_activate
self.window=TypeCatcherWindow.TypeCatcherWindow()
Файл «/usr/lib/python3/dist-packages/typecatcher_lib/Window.py», строка 47, в __new__
builder=get_builder('TypeCatcherWindow')
Файл «/usr/lib/python3/dist-packages/typecatcher_lib/helpers.py», строка 44, в get_builder
builder.add_from_file(ui_filename)
Файл «/usr/lib/python3/dist-packages/typecatcher_lib/Builder.py», строка 86, в add_from_file
ele_widgets=Tree.getiterator("объект")
AttributeError: объект «ElementTree» не имеет атрибута «getiterator».

Проблема связана с удалением методов getiterator() из модуля xml.etree.ElementTree в Python 3.9, который устарел с Python 3.2.

Как указано в объявлении, вместо этого просто используйте метод iter(), чтобы решить проблему.

Методы getchildren() и getiterator() классов ElementTree и Element в модуле ElementTree были удалены. Они устарели в Python 3.2. Используйте iter(x) или list(x) вместо x.getchildren() и x.iter() или list(x.iter()) вместо x.getiterator().

1. Сначала найдите и откройте окно терминала либо из меню «Пуск», либо из обзора «Действия» в зависимости от среды вашего рабочего стола.

2. Когда терминал откроется, запустите команду для редактирования файла, содержащего метод getiterator() (см. первый скриншот). В данном случае это «/usr/lib/python3/dist-packages/typecatcher_lib/Builder.py».

sudo gedit /usr/lib/python3/dist-packages/typecatcher_lib/Builder.py

замените gedit на свой любимый текстовый редактор или используйте редактор командной строки nano, который работает в большинстве Linux.

3. Когда файлы откроются, найдите и замените tree.getiterator на tree.iter.

Для текстового редактора Gedit просто зайдите в меню и откройте диалоговое окно «Найти и заменить». Наконец, вставьте tree.getiterator как «Найти» и «tree.iter» как «Заменить на», затем нажмите кнопку «Заменить все».

Для текстового редактора nano нажмите Alt+R, когда файл откроется в окне терминала. Затем введите tree.getiterator, когда появится сообщение «Поиск (для замены)», нажмите Enter и вставьте tree.iter, когда будет предложено «Заменить на». Наконец, нажмите Enter и введите y. Или просто используйте клавиши со стрелками, чтобы найти и заменить ключевое слово (их 2) вручную. Затем нажмите Ctrl+x, введите y и нажмите Enter, чтобы сохранить изменения.

После сохранения файла попробуйте запустить его либо из обзора «Действия», либо из командной строки, и наслаждайтесь!

Статьи по данной тематике