解决qt.qpa.plugin: Could not load the Qt platform plugin “xcb“问题

问题一

运行程序,报错qt.qpa.plugin: Could not load the Qt platform plugin “xcb” 定位后是pyqt5问题,什么修改动态连接文件、降低版本,各种方式都试过了都不能解决,使用conda安装后启动正常。

QObject::moveToThread: Current thread (0x557d2ffe4400) is not the object's thread (0x557d30751de0).
Cannot move to target thread (0x557d2ffe4400)

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/cv/anaconda3/envs/darknet/lib/python3.6/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: xcb, eglfs, linuxfb, minimal, minimalegl, offscreen, vnc, wayland-egl, wayland, wayland-xcomposite-egl, wayland-xcomposite-glx, webgl.

已放弃 (核心已转储)

pip卸载原有的pyqt5,使用conda install 安装

pip uninstall pyqt5
conda install pyqt

问题二

安装Qtpy后运行程序报错,经过反复查找资料调试后还是不能运行,最后发现是版本不匹配问题。

(darknet) cv@cv-System-Product-Name:~/wankou_detect_5_6_batch4$ python script.py 
Traceback (most recent call last):
  File "script.py", line 1, in <module>
    from PyQt5 import QtWidgets
ImportError: /home/cv/anaconda3/lib/libQt5Core.so.5: version `Qt_5.12' not found (required by /home/cv/anaconda3/envs/darknet/lib/python3.8/site-packages/PyQt5/QtWidgets.so)

卸载掉之前的版本,或者直接安装就可以,安装适配的版本后成功运行,折腾了一上午,什么更改环境变量,什么方法都使了都不好用,最后重新装了pyqt5==5.12好用了。

pip install pyqt5==5.12
### 解决 Qt 平台插件 'xcb' 加载失败的问题 当遇到 `qt.qpa.plugin: Could not load the Qt platform plugin "xcb"` 错误时,通常是因为缺少必要的库文件或环境变量未正确设置。以下是可能的解决方案: #### 方法一:设置环境变量 可以通过设置环境变量来指定 Qt 插件路径。具体操作如下: ```bash export QT_QPA_PLATFORM_PLUGIN_PATH=/path/to/your/qt/plugins/platforms ``` 上述命令中的 `/path/to/your/qt/plugins/platforms` 需要替换为实际安装的 Qt 插件路径[^1]。 如果不确定具体的路径,可以尝试查找默认位置,例如: - 对于系统级安装的 Qt,默认路径可能是 `/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms/` 或类似的目录。 - 如果使用的是自定义构建的 Qt,则需要找到对应的 `platforms` 文件夹。 #### 方法二:验证依赖项是否存在 错误也可能由缺失的动态链接库引起。通过以下方法检查并修复依赖关系: ```bash ldd /path/to/your/qt/plugins/platforms/libqxcb.so ``` 此命令会显示 `libqxcb.so` 的所有依赖项及其状态。如果有任何依赖项标记为“not found”,则需安装相应的软件包。常见的缺失库包括但不限于: - `libxcb.so.*` - `libxkbcommon-x11.so.*` 在基于 Debian 的系统上,可通过以下命令安装这些库: ```bash sudo apt-get install libxcb-util1 libxkbcommon-x11-0 ``` 对于 Red Hat/CentOS/Fedora 系统,可执行以下命令: ```bash sudo yum install xcb-util libxkbcommon-x11 ``` #### 方法三:重新配置 PyQt 或 PySide 安装 某些情况下,问题源于不兼容的 Python 绑定版本。建议卸载当前使用的绑定工具(PyQt 或 PySide),然后重新安装最新稳定版。例如: ```bash pip uninstall pyqt5 pyside2 pip install pyqt5 ``` #### 方法四:使用预编译的二进制包 如果手动安装和配置仍然无法解决问题,考虑使用已预先配置好的运行环境。例如,在 Linux 上可以直接解压官方发布的二进制分发包至目标目录,并按照说明完成初始化工作[^2]。 --- ### 总结 以上提供了四种不同的方式处理 `qt.qpa.plugin: Could not load the Qt platform plugin "xcb"` 问题。优先推荐调整环境变量以及确认必要共享对象的存在情况;若条件允许的话,采用经过良好测试过的发行版本也是一种可行的选择。
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值