qt.qpa.plugin:无法在“”中加载qt平台插件“xcb”,即使已找到该插件

2024-09-27 21:23:07 发布

您现在位置:Python中文网/ 问答频道 /正文

我安装了gqcnnPyrepautolab_core。之后,我执行了同事编写的代码,在他的计算机上运行良好

但是,我无法运行代码。发生的错误为

python3.7/site-packages/cv2/qt/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/home/bak/anaconda3/envs/pyrep/lib/python3.7/site-packages/cv2/qt/plugins/platforms/libqxcb.so"
Found metadata in lib /home/bak/anaconda3/envs/pyrep/lib/python3.7/site-packages/cv2/qt/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "archreq": 0,
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 331520
}


In /home/bak/anaconda3/envs/pyrep/lib/python3.7/site-packages/cv2/qt/plugins/platforms/libqxcb.so:
  Plugin uses incompatible Qt library (5.15.0) [release]
"The plugin '/home/bak/anaconda3/envs/pyrep/lib/python3.7/site-packages/cv2/qt/plugins/platforms/libqxcb.so' uses incompatible Qt library. (5.15.0) [release]" 
         not a plugin
QFactoryLoader::QFactoryLoader() checking directory path "/home/bak/anaconda3/envs/pyrep/plugins/platforms" ...
QFactoryLoader::QFactoryLoader() looking at "/home/bak/anaconda3/envs/pyrep/plugins/platforms/libqeglfs.so"
Found metadata in lib /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqeglfs.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "eglfs"
        ]
    },
    "className": "QEglFSIntegrationPlugin",
    "debug": false,
    "version": 329991
}


Got keys from plugin meta data ("eglfs")
QFactoryLoader::QFactoryLoader() looking at "/home/bak/anaconda3/envs/pyrep/plugins/platforms/libqminimal.so"
Found metadata in lib /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqminimal.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimal"
        ]
    },
    "className": "QMinimalIntegrationPlugin",
    "debug": false,
    "version": 329991
}


Got keys from plugin meta data ("minimal")
QFactoryLoader::QFactoryLoader() looking at "/home/bak/anaconda3/envs/pyrep/plugins/platforms/libqminimalegl.so"
Found metadata in lib /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqminimalegl.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "minimalegl"
        ]
    },
    "className": "QMinimalEglIntegrationPlugin",
    "debug": false,
    "version": 329991
}


Got keys from plugin meta data ("minimalegl")
QFactoryLoader::QFactoryLoader() looking at "/home/bak/anaconda3/envs/pyrep/plugins/platforms/libqoffscreen.so"
Found metadata in lib /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqoffscreen.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "offscreen"
        ]
    },
    "className": "QOffscreenIntegrationPlugin",
    "debug": false,
    "version": 329991
}


Got keys from plugin meta data ("offscreen")
QFactoryLoader::QFactoryLoader() looking at "/home/bak/anaconda3/envs/pyrep/plugins/platforms/libqvnc.so"
Found metadata in lib /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqvnc.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "vnc"
        ]
    },
    "className": "QVncIntegrationPlugin",
    "debug": false,
    "version": 329991
}


Got keys from plugin meta data ("vnc")
QFactoryLoader::QFactoryLoader() looking at "/home/bak/anaconda3/envs/pyrep/plugins/platforms/libqxcb.so"
Found metadata in lib /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqxcb.so, metadata=
{
    "IID": "org.qt-project.Qt.QPA.QPlatformIntegrationFactoryInterface.5.3",
    "MetaData": {
        "Keys": [
            "xcb"
        ]
    },
    "className": "QXcbIntegrationPlugin",
    "debug": false,
    "version": 329991
}


Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/home/bak/anaconda3/envs/pyrep/bin/platforms" ...
Cannot load library /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqxcb.so: (/home/bak/anaconda3/envs/pyrep/plugins/platforms/../../lib/libQt5XcbQpa.so.5: symbol _ZN11QFontEngine14bitmapForGlyphEj6QFixedRK10QTransform version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference)
QLibraryPrivate::loadPlugin failed on "/home/bak/anaconda3/envs/pyrep/plugins/platforms/libqxcb.so" : "Cannot load library /home/bak/anaconda3/envs/pyrep/plugins/platforms/libqxcb.so: (/home/bak/anaconda3/envs/pyrep/plugins/platforms/../../lib/libQt5XcbQpa.so.5: symbol _ZN11QFontEngine14bitmapForGlyphEj6QFixedRK10QTransform version Qt_5_PRIVATE_API not defined in file libQt5Gui.so.5 with link time reference)"
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/bak/anaconda3/envs/pyrep/lib/python3.7/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

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

如果您想详细查看完整错误,请参阅here。 上面的“/pyrep/”是我的Python环境名称

这似乎是由qt引起的。但我无法解决这个问题

我该怎么解决这个问题


Tags: inhomesolibpluginsqtpluginmetadata
3条回答

最后,我找到了解决办法! https://github.com/stepjam/PyRep/issues/76

问题是在conda环境中加载Qt

当我键入qmake -version时,终端窗口显示了anaconda中的qt。 在我按照上面URL的第一个答案进行操作之后,我就可以解决这个问题了

这可能与similar error message有关

在Ubuntu 20.04和Python 3.8中,我在尝试使用matplotlib_backend_qtquick时遇到了这个问题

上述线程中的这个答案为我解答了:https://askubuntu.com/a/1069502

如果将opencvpyqt5一起使用,则会出现此问题。看起来opencv内部使用的qt插件与pyqt5不兼容。只需在import cv2语句之后取消设置环境变量QT_QPA_PLATFORM_PLUGIN_PATH

import os

os.environ.pop("QT_QPA_PLATFORM_PLUGIN_PATH")

您还可以在导入opencv后更新平台插件路径

import os

os.environ.update({"QT_QPA_PLATFORM_PLUGIN_PATH": "/home/udara/anaconda3/envs/research-headless/lib/python3.8/site-packages/PyQt5/Qt5/plugins/xcbglintegrations/libqxcb-glx-integration.so"})

请注意,这将使opencv窗口函数无法使用。如果你想使用它们,你必须在没有qt插件的情况下从源代码构建opencv。您可以使用gtk插件而不是qt构建opencv

参考文献https://forum.qt.io/post/654289

相关问题 更多 >

    热门问题