Ubuntu 24.04 hplip из дистрибутива имеет сбой python

Вопрос или проблема

На рабочей системе Ubuntu 24.04, подключенной по USB-кабелю к принтеру HP, я использовал apt для установки hplip и hplip-gui из стандартного дистрибутива Ubuntu. Диагностических сообщений не было — все выглядело работающим. Затем я попытался настроить принтер с помощью hplip-gui, но приложение никогда не позволяло мне завершить настройку. Я затем открыл терминальное приложение и вызвал hp-setup. Отобразился графический интерфейс, который снова завис; однако в терминале во время выполнения hp-setup появились диагностические сообщения, которые я скопировал ниже. Похоже, что отсутствуют зависимости python, которые apt (на самом деле, apt-get) не заставляет устанавливать вместе с пакетами. Любая помощь будет очень appreciated. Для модераторов/цензоров этого списка: обрезка диагностического вывода может устранить подсказку о том, как исправить сбой.


HP Linux Imaging and Printing System (вер. 3.23.12)
Утилита настройки принтера/факса вер. 9.0

Copyright (c) 2001-18 HP Development Company, LP
Это программное обеспечение поставляется БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ.
Это бесплатное программное обеспечение, и вы можете распространять его
при определенных условиях. Смотрите файл COPYING для получения подробной информации.

Поиск... (bus=usb, search=(None), desc=0)
Ошибка трейсбека (последний вызов был последним):
  Файл "/usr/share/hplip/ui5/setupdialog.py", строка 1394, в NextButton_clicked
    self.showAddPrinterPage()
  Файл "/usr/share/hplip/ui5/setupdialog.py", строка 708, в showAddPrinterPage
    self.findPrinterPPD()
  Файл "/usr/share/hplip/ui5/setupdialog.py", строка 797, в findPrinterPPD
    self.print_ppd = cups.getPPDFile2(
                     ^^^^^^^^^^^^^^^^^
  Файл "/usr/share/hplip/prnt/cups.py", строка 539, в getPPDFile2
    family_class=getFamilyClassName(model)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^
  Файл "/usr/share/hplip/prnt/cups.py", строка 181, в getFamilyClassName
    family_type= dict[m]['family-class']
                 ~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'family-class'
Ошибка в sys.excepthook:
Ошибка трейсбека (последний вызов был последним):
  Файл "/usr/lib/python3/dist-packages/apport_python_hook.py", строка 228, в partial_apport_excepthook
    return apport_excepthook(binary, exc_type, exc_obj, exc_tb)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Файл "/usr/lib/python3/dist-packages/apport_python_hook.py", строка 123, в apport_excepthook
    report.add_package_info()
  Файл "/usr/lib/python3/dist-packages/apport/report.py", строка 442, в add_package_info
    package = apport.fileutils.find_file_package(self["ExecutablePath"])
              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Файл "/usr/lib/python3/dist-packages/apport/fileutils.py", строка 175, в find_file_package
    return packaging.get_file_package(file)
           ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Файл "/usr/lib/python3/dist-packages/apport/packaging_impl/apt_dpkg.py", строка 631, в get_file_package
    dpkg = subprocess.run(
           ^^^^^^^^^^^^^^^
  Файл "/usr/lib/python3.12/subprocess.py", строка 548, в run
    with Popen(*popenargs, **kwargs) as process:
         ^^^^^^^^^^^^^^^^^^^^^^^^^^^
  Файл "/usr/lib/python3.12/subprocess.py", строка 1026, в __init__
    self._execute_child(args, executable, preexec_fn, close_fds,
  Файл "/usr/lib/python3.12/subprocess.py", строка 1955, в _execute_child
    raise child_exception_type(errno_num, err_msg, err_filename)
PermissionError: [Errno 13] Доступ запрещен: 'dpkg-divert'

Исключение оригинала:
Ошибка трейсбека (последний вызов был последним):
  Файл "/usr/share/hplip/ui5/setupdialog.py", строка 1394, в NextButton_clicked
    self.showAddPrinterPage()
  Файл "/usr/share/hplip/ui5/setupdialog.py", строка 708, в showAddPrinterPage
    self.findPrinterPPD()
  Файл "/usr/share/hplip/ui5/setupdialog.py", строка 797, в findPrinterPPD
    self.print_ppd = cups.getPPDFile2(
                     ^^^^^^^^^^^^^^^^^
  Файл "/usr/share/hplip/prnt/cups.py", строка 539, в getPPDFile2
    family_class=getFamilyClassName(model)
                 ^^^^^^^^^^^^^^^^^^^^^^^^^
  Файл "/usr/share/hplip/prnt/cups.py", строка 181, в getFamilyClassName
    family_type= dict[m]['family-class']
                 ~~~~~~~^^^^^^^^^^^^^^^^
KeyError: 'family-class'```

Ответ или решение

Вопрос, который вы подняли о проблемах с HPLIP (HP Linux Imaging and Printing) на Ubuntu 24.04, имеет несколько возможных причин, связанных с зависимостями, которые могут отсутствовать, а также с несовместимыми версиями пакетов. Давайте подробно рассмотрим каждую часть вывода ошибок, который вы предоставили, и возможные шаги для решения проблемы.

Анализ проблемы

  1. Основная ошибка: KeyError: ‘family-class’
    Эта ошибка указывает на то, что HPLIP не может найти соответствующий класс для драйвера принтера. Это может происходить из-за того, что информация о принтере в системе не соответствует данным в установленных PPD-файлах. Это часто связано с отсутствием правильных или актуальных драйверов.

  2. PermissionError: [Errno 13] Permission denied
    Эта ошибка возникает из-за отсутствия прав доступа к файлу dpkg-divert, что может быть связано с тем, что команда hp-setup была запущена от имени пользователя, не обладающего правами суперпользователя. Это может повлиять на возможности установки необходимых пакетов или модификации системных конфигураций.

Шаги для решения проблемы

  1. Обновление системы
    Убедитесь, что ваша система обновлена до последней версии. Используйте команды в терминале:

    sudo apt update
    sudo apt upgrade
  2. Проверка зависимостей HPLIP
    Убедитесь, что у вас установлены все необходимые зависимости. Вы можете попытаться переустановить HPLIP, чтобы гарантировать установку всех требуемых пакетов:

    sudo apt remove hplip hplip-gui
    sudo apt install hplip hplip-gui
  3. Запуск в режиме суперпользователя
    Попробуйте запустить hp-setup с привилегиями суперпользователя:

    sudo hp-setup
  4. Проверка поддержки вашего принтера
    Убедитесь, что ваш принтер поддерживается установленной версией HPLIP. Для этого можно ознакомиться с официальной страницей HPLIP на сайте HP, где представлены поддерживаемые модели принтеров.

  5. Добавление недостающих Python-библиотек
    Проверьте наличие и установите необходимые Python-библиотеки, которые могут отсутствовать. Иногда могут понадобиться библиотеки, такие как python3-pyqt5 или другие, связанные с GUI:

    sudo apt install python3-pyqt5
  6. Проверка PPD файлов
    Убедитесь, что все PPD файлы для вашего принтера находятся в правильной директории. Если вам необходимо добавить или обновить PPD файл, вы можете это сделать вручную или через установщик HPLIP.

Заключение

Следуя этим шагам, вы сможете устранить большинство проблем, связанных с установкой HPLIP на Ubuntu 24.04. Если проблема сохраняется, возможно, стоит обратиться за поддержкой к сообществу Ubuntu или HP, предоставив им подробную информацию об ошибках, которые вы видите.

Если у вас есть дополнительные вопросы или необходима помощь в выполнении этих шагов, не стесняйтесь обращаться.

Оцените материал
Добавить комментарий

Капча загружается...