Как исправить ошибку «MESA-LOADER: устройство не находится на шине PCI» при запуске pyqt5? - PullRequest
0 голосов
/ 05 февраля 2019

Я хочу убедиться, что pyqt5 работает на моем Raspberry Pi.Когда я пытаюсь запустить учебник, выдающий только окно, код дает желаемые результаты, но выдается сообщение об ошибке.Это учебное пособие от http://zetcode.com/gui/pyqt5/firstprograms/. Соответствующий код указан в конце этого поста.

Полученное сообщение об ошибке:

MESA-LOADER: device is not located on the PCI bus
MESA-LOADER: device is not located on the PCI bus
MESA-LOADER: device is not located on the PCI bus
qt5ct: using qt5ct plugin
inotify_add_watch("/home/pi/.config/qt5ct") failed: "No such file 
or directory"

Операционная система «Raspbian GNU / Linux 9 (stretch) ", на котором я установил« Qt версии 5.7.1 ». Средой IDE является« Thonny », на которой я запускаю« Python 3.5.3 ».

Вот что япопытался.

Исходники https://raspberrypi.stackexchange.com/questions/84703/qcamera-get-error-mesa-loader-failed-to-retrieve-device-information и https://github.com/RPi-Distro/repo/issues/89 предложили обновить libdrm.

Я обновил libdrm, используя эти инструкции https://github.com/anholt/mesa/wiki/VC4-complete-Raspbian-upgrade#libdrm. Я проигнорировалинструкции перед разделом libdrm. Мне удалось обновить libdrm без сообщений об ошибках. Результатом обновления libdrm было изменение сообщения об ошибке в pyqt5 на указанное выше. Перед обновлением libdrm сообщение об ошибке в pyqt5 было:

MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
qt5ct: using qt5ct plugin
inotify_add_watch("/home/pi/.config/qt5ct") failed: "No such file or directory"

Поэтому при обновлении libdrm изменилось «не удалось получить информацию об устройстве» на «устройство не находится на шине PCI».

Я хотел обновить Mesa до последней версии. Для этого яхотел проверить текущую установленную версию Mesa, используя следующий вход терминала:

glxinfo | grep "OpenGL version"

Вывод был:

libGL error: MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
OpenGL version string: 2.1 Mesa 13.0.6

Это показало мне, что я использую Mesa версии 13.0.6, в то время каксамая последняя версия - 19.0.0.Я попытался обновить Mesa, используя следующие инструкции: https://github.com/anholt/mesa/wiki/VC4-complete-Raspbian-upgrade#mesa. Я игнорировал инструкции перед разделом Mesa.Код, выполненный без сообщений об ошибках, до команды «make», где было выдано следующее сообщение об ошибке:

make: *** No targets specified and no makefile found.  Stop.

Код из учебника:

#!/usr/bin/python3
# -*- coding: utf-8 -*-

"""
ZetCode PyQt5 tutorial 

In this example, we create a simple
window in PyQt5.

Author: Jan Bodnar
Website: zetcode.com 
Last edited: August 2017
"""

import sys
from PyQt5.QtWidgets import QApplication, QWidget

if __name__ == '__main__':

    app = QApplication(sys.argv)

    w = QWidget()
    w.resize(250, 150)
    w.move(300, 300)
    w.setWindowTitle('Simple')
    w.show()

    sys.exit(app.exec_())

Ожидается: Создать окнопод названием «Простой» и не выдают никаких сообщений об ошибках в Python IDE.

Фактические результаты: Окно под названием «Простой» было создано, как и ожидалось.В Python IDE было выдано сообщение об ошибке.

...