[Ubuntu] Программе QT не удалось найти или загрузить подключаемый модуль платформы Qt «xcb» в «решение ошибки

Описание проблемы:

См. ниже:
вставьте сюда описание изображения

import matplotlib.pyplot as plt
import cv2
img=cv2.imread('img_path')###读入单张图片

b,g,r=cv2.split(img) #原图的bgr三个通道分离
img_rgb=cv2.merge([r,g,b])#rgb顺序显示的合成

plt.figure()
plt.subplot(331),plt.imshow(img),plt.title("cat_bgr")

plt.subplot(337),plt.imshow(img_rgb),plt.title("cat_rgb")
 
plt.show()

Запустите приведенный выше код, блогер в основном вызывает matplotlibфункцию рисования, поиска * «Не удалось запустить это приложение, поскольку ему не удалось найти или загрузить плагин платформы Qt «xcb» * в Интернете, и получите следующее решение:

метод первый:

Анализ причин:
версия matplotlib несовместима

Решение:
сначала удалите оригинальный matplotlib, а затем переустановите его.

ссылка:

pip uninstall matplotlib
pip install matplotlib

Способ второй:

Анализ причин:

Мы хотим вызвать matplotlibфункцию рисования, но сообщение об ошибке заключается в том , что она не может найти или загрузить плагин платформы Qt «xcb» в « »,
поэтому учтите, что версии Qt и matplotlib несовместимы.

Решение:
удалите QT и matplotlib и переустановите

ссылка:

conda uninstall qt
conda uninstall matplotlib
conda install qt
conda install matplotlib

Способ третий:

Анализ причины:
в папке платформ отсутствуют соответствующие файлы, попробуйте вручную переключиться и найдите файл платформ в каталоге установки Qt, который является подфайлом в файле плагинов, и поместите файл .dll в вашей собственной папке для запуска.

Блогер не пробовал это решение, потому что оно связано с перемещением базовых зависимых файлов, легко вызвать проблемы из-за отсутствия некоторых файлов, а поскольку в то время среда conda была грязной, каталог установки Qt не мог быть найден. , поэтому от этого решения отказались.Не рекомендуется пробовать использовать

Способ четвертый (наверное, самый распространенный случай):

Условие:
при вводе командной строки qtcreatorвозникает ошибка:

This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Reinstalling the application may fix this problem.
Aborted (core dumped)

Если его qtcreatorможно запустить нормально, это не так.Нормальный запуск показан на рисунке ниже:
вставьте сюда описание изображения
Решение:
1. Вход

sudo gedit ~/.bashrc

В последней строке добавить:

export QT_DEBUG_PLUGINS=1

Функция этого шага заключается в том, что вы можете увидеть сообщение об ошибке во время процесса запуска qt.
2. Запустите qtcreator и получите запущенный процесс в командной строке следующим образом:

Got keys from plugin meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so"
Found metadata in lib /opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so, metadata=
{
    
    
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
    
    
        "Keys": [
            "xcb"
        ]
    },
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 330240
}


Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/opt/Qt5.10.0/Tools/QtCreator/bin/platforms" ...
Cannot load library /opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by /opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so))
QLibraryPrivate::loadPlugin failed on "/opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so" : "Cannot load library /opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so: (/usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by /opt/Qt5.10.0/Tools/QtCreator/lib/Qt/plugins/platforms/libqxcb.so))"
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, xcb.

Reinstalling the application may fix this problem.
Aborted (core dumped)

3. Причина в libqxcb.so, перейдите в /opt/Qt5.10.0/5.10.0/gcc_64/plugins/platforms, запустите команду ldd libqxcb.so, просмотрите соответствующий контент следующим образом:

./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5XcbQpa.so.5: version `Qt_5_PRIVATE_API' not found (required by ./libqxcb.so)
./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5Gui.so.5: version `Qt_5_PRIVATE_API' not found (required by ./libqxcb.so)
./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5.10' not found (required by ./libqxcb.so)
./libqxcb.so: /usr/lib/x86_64-linux-gnu/libQt5Core.so.5: version `Qt_5' not found (required by ./libqxcb.so)

Вы можете видеть, что проблема в следующем: ‘Qt_5_PRIVATE_API’ not found
4. Вам нужно добавить переменные среды следующим образом:

export LD_LIBRARY_PATH=/opt/Qt5.10.0/5.10.0/gcc_64/lib:$LD_LIBRARY_PATH

5. Ввод командной строки qtcreator, успешная работа

Способ пятый:

Идея 1:
Установите переменную среды export QT_DEBUG_PLUGINS=1

Запустите, чтобы увидеть процесс загрузки программы QT и увидеть подробную информацию об ошибке.
Последняя часть выглядит так:

Found metadata in lib /usr/lib64/qt5/plugins/platforms/libqxcb.so, metadata=
{
    
    
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
    
    
        "Keys": [
            "xcb"
        ]
    },
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 329218
}
QLibraryPrivate::loadPlugin failed on "/usr/lib64/qt5/plugins/platforms/libqxcb.so" : "Cannot load library /usr/lib64/qt5/plugins/platforms/libqxcb.so: (/lib64/libQt5XcbQpa.so.5: symbol _ZNK11QFontEngine6handleEv, version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference)"
This application failed to start because it could not find or load the Qt platform plugin "xcb"
in "".

Available platform plugins are: eglfs, linuxfb, minimal, minimalegl, offscreen, xcb, xcb.

Reinstalling the application may fix this problem.

Скопируйте libQt5XcbQpa.so, libQt5DBus.so.5 в рабочий каталог.

Идея 2:
Скопируйте каталог платформ из каталога плагинов под qt в исполняемый каталог, который находится на том же уровне, что и исполняемая программа (должен быть на том же уровне)

Этот метод аналогичен третьему

Способ шестой:

解决qt.qpa.plugin: Не удалось найти плагин платформы Qt «xcb» в ««

Метод седьмой (также мое окончательное решение):

Идея:
воссоздать среду conda:

conda create -n env_name python=3.7

Пакет установки matplotlib:

pip install matplotlib

Решено успешно!

Ссылка:
1. [РЕШЕНО] qt.qpa.plugin: не удалось найти плагин платформы Qt «xcb» в «»

рекомендация

отblog.csdn.net/weixin_48936263/article/details/124655575