[Ubuntu] Das QT-Programm konnte das Qt-Plattform-Plugin „xcb“ in „Fehlerlösung“ nicht finden oder laden

Problembeschreibung:

Siehe unten:
Fügen Sie hier eine Bildbeschreibung ein

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()

Führen Sie den obigen Code aus. Der Blogger ruft hauptsächlich matplotlibdie Zeichnungsfunktion auf, sucht nach * „Diese Anwendung konnte nicht gestartet werden, weil sie das Qt-Plattform-Plugin „xcb“* im Internet nicht finden oder laden konnte, und erhält die folgende Lösung:

Methode eins:

Ursachenanalyse:
Die Matplotlib-Version ist nicht kompatibel

Lösung:
Deinstallieren Sie zuerst die ursprüngliche Matplotlib und installieren Sie sie dann erneut

Referenz:

pip uninstall matplotlib
pip install matplotlib

Methode Zwei:

Ursachenanalyse:

Wir möchten die Funktion Zeichnung aufrufen matplotlib, aber die Fehlermeldung lautet , dass das Qt-Plattform-Plugin „xcb“ in „“ nicht gefunden oder geladen werden konnte.
Bedenken Sie daher, dass die Versionen von Qt und Matplotlib nicht kompatibel sind.

Lösung:
Deinstallieren Sie QT und Matplotlib und installieren Sie es erneut

Referenz:

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

Methode drei:

Ursachenanalyse:
Es fehlen entsprechende Dateien im Plattformordner. Versuchen Sie, manuell zu wechseln, suchen Sie die Plattformdatei im Qt-Installationsverzeichnis, bei dem es sich um eine Unterdatei unter der Plugin-Datei handelt, und legen Sie die DLL-Datei ab in Ihrem eigenen Ordner, um es auszuführen.

Der Blogger hat diese Lösung nicht ausprobiert, da sie die Verschiebung der zugrunde liegenden abhängigen Dateien beinhaltet, es leicht zu Problemen kommen kann, weil einige Dateien fehlen, und weil die Conda-Umgebung zu diesem Zeitpunkt chaotisch war, konnte das Qt-Installationsverzeichnis nicht gefunden werden Daher wurde diese Lösung aufgegeben. Es wird nicht empfohlen, sie zu verwenden

Methode vier (wahrscheinlich der häufigste Fall):

Voraussetzung:
Kommandozeileneingabe qtcreatorerzeugt einen Fehler:

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)

Wenn es qtcreatornormal gestartet werden kann, ist dies nicht der Fall. Der normale Start erfolgt wie in der folgenden Abbildung dargestellt:
Fügen Sie hier eine Bildbeschreibung ein
Lösung:
1. Eingabe

sudo gedit ~/.bashrc

Fügen Sie in der letzten Zeile hinzu:

export QT_DEBUG_PLUGINS=1

Die Funktion dieses Schritts besteht darin, dass Sie die Fehlermeldung während des qt-Startvorgangs sehen können.
2. Führen Sie qtcreator aus und rufen Sie den laufenden Prozess wie folgt in der Befehlszeile ab:

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. Der Grund ist libqxcb.so, cd nach /opt/Qt5.10.0/5.10.0/gcc_64/plugins/platforms, führen Sie den Befehl ldd libqxcb.so aus und sehen Sie sich den zugehörigen Inhalt wie folgt an:

./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)

Sie können sehen, dass das Problem wie folgt ist: ‘Qt_5_PRIVATE_API’ not found
4. Sie müssen Umgebungsvariablen wie folgt hinzufügen:

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

5. Befehlszeileneingabe qtcreator, erfolgreicher Vorgang

Methode fünf:

Idee 1:
Setzen Sie die Umgebungsvariable export QT_DEBUG_PLUGINS=1

Führen Sie den Befehl aus, um den Ladevorgang des QT-Programms zu verfolgen und detaillierte Fehlerinformationen anzuzeigen.
Der letzte Teil sieht so aus:

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.

Kopieren Sie libQt5XcbQpa.so, libQt5DBus.so.5 in das laufende Verzeichnis.

Idee 2:
Kopieren Sie das Plattformverzeichnis unter dem Plugins-Verzeichnis unter qt in das ausführbare Verzeichnis, das sich auf derselben Ebene wie das ausführbare Programm befindet (muss auf derselben Ebene sein).

Diese Methode ist die gleiche wie Methode drei

Methode sechs:

Zurück zu qt.qpa.plugin: Das Qt-Plattform-Plugin „xcb“ konnte in „“ nicht gefunden werden.

Methode sieben (auch meine endgültige Lösung):

Idee:
Erstellen Sie eine Conda-Umgebung neu:

conda create -n env_name python=3.7

Installationspaket matplotlib:

pip install matplotlib

Erfolgreich gelöst!

Referenzlink:
1. [GELÖST] qt.qpa.plugin: Das Qt-Plattform-Plugin „xcb“ konnte in „“ nicht gefunden werden.

Acho que você gosta

Origin blog.csdn.net/weixin_48936263/article/details/124655575
Recomendado
Clasificación