出现“qt.qpa.plugin: Could not load the Qt platform plugin “xcb” in ‘ ’even though it was found

执行.py文件报错:

一个使用Pyqt5库的Python程序时,出现报错:

// 注意看最后一段报错信息
Got keys from plugin meta data ("xcb")
QFactoryLoader::QFactoryLoader() checking directory path "/usr/bin/platforms" ...
loaded library "/home/XXX/.local/lib/python3.8/site-packages/cv2/qt/plugins/platforms/libqxcb.so"
QObject::moveToThread: Current thread (0x2884760) is not the object's thread (0x5bf1580).
Cannot move to target thread (0x2884760)

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/XXX/.local/lib/python3.8/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.

很明显,从问题描述来看,说的是libxcb.so库“能够找到,但是无法加载”。

走的弯路的解决方案:

参照网址链接: Ubuntu18.04下解决Qt出现qt.qpa.plugin:Could not load the Qt platform plugin “xcb“问题.。
说是应该libxcb.so库链接不正确,也就是当加载libxcb.so库时,还需要加载libxcb-xinerama库,于是我就安装了这个库:

//安装libxcb-xinerama0库
sudo apt-get install libxcb-xinerama0

但问题人仍然没解决,不过感谢博主的记录。

继续查找问题,发现参照网址链接: 关于qt缺少xcb问题终极解决办法.
这个博主说是缺少/lib64/libQt5XcbQpa.so.5和
解决问题的关键在于,添加环境变量:export QT_DEBUG_PLUGINS=1。
但对于我的问题仍然无效,经过多次尝试配环境和补充libxcb.so库相关文件未果,最终决定卸载先opencv再重装,最终解决我的问题。

最终解决方案

//最终解决方法
pip3 uninstall opencv-python
pip3 install opencv-contrib-python
sudo apt-get install python3-opencv

结语

遇到问题不断解决问题,相信最终会解决问题的!
最后,祝大家好运,都能成功解决bug,生活人仍然美好!!!

Logo

华为开发者空间,是为全球开发者打造的专属开发空间,汇聚了华为优质开发资源及工具,致力于让每一位开发者拥有一台云主机,基于华为根生态开发、创新。

更多推荐