摘要:在Ubuntu 22.04中安装OpenCV后,遇到“load the Qt platform plugin “xcb” in site-packages/cv2/qt/plugins" even though it was found. 的问题,导致步伐无法启动。本文详细探究了该问题的成因,并先容了几种常见但无效的解决方法,包括设置环境变量、重装OpenCV或PySide6、以及低沉OpenCV或Qt版本等。这些方法未能处置惩罚系统中缺失的XCB相关依赖项。最终,本文通过命令sudo apt install libxcb-*
来安装所有与XCB相关的库,从而乐成解决问题。
1. 引言
在Linux环境下,尤其是利用Ubuntu时,我们经常会选择OpenCV来进行图像处置惩罚和盘算机视觉开发。近来,我在Ubuntu 22.04中安装OpenCV并运行代码时,遇到了一个比力棘手的问题——“Could not load the Qt platform plugin ‘xcb’”。这个问题直接导致步伐无法启动,尽管系统已经找到了相应的插件。经过多次实验和研究,我终于找到了一个有效的解决方案。在这篇博客中,我细先容这个问题的解决过程,希望能帮助到同样遇到此问题的开发人员。
2. 错误描述
首先说一下,我的项目中利用了PyTorch、OpenCV和PySide6这些库,其实就是利用QT界面表现深度学习的一些项目。在Windows中运行良好,但同样的代码,在安装完OpenCV并实验在ubuntu上运行时,终端报出了以下错误:
- load the Qt platform plugin "xcb" in "/home/mindcraft/miniconda3/envs/env_rec/lib/python3.10/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: vkkhrdisplay, xcb, minimal, wayland, minimalegl, wayland-egl, linuxfb, vnc, offscreen, eglfs.
复制代码 从错误信息来看,问题的核心在于Qt无法加载xcb平台插件,纵然系统已经找到了这个插件。这个问题比力希奇,因为这个错误很容易以为是PyQt5大概PySide6的库报出来的。一般QT的环境变量没有设置好,也会提示说不能载入插件。
但仔细看这个错误是OpenCV报出来的,提示信息里面的“cv2/qt/plugins”就是OpenCV。我又想到会不会是PySide6的QT环境变量与OpenCV的相互影响了?找了一通,被很多教程给误导,没能解决。
3. 常见但无效的解决方法
在实验解决这个问题的过程中,找到了很多以下常见但无效的解决方法:
- 设置环境变量:
很多教程发起设置环境变量export QT_QPA_PLATFORM=xcb,以确保Qt利用正确的插件,大概设置成vkkhrdisplay, xcb, minimal, wayland, minimalegl, wayland-egl, linuxfb, vnc, offscreen, eglfs这些此中的任一个。然而,尽管设置了这个变量,问题依然存在,并没有实质性的改善。这是因为该设置只是指示Qt利用特定的平台插件,而并未解决插件初始化失败的根本问题。
- 安装底子库:
常见的做法是安装一些与XCB相关的底子库,如:
- sudo apt-get install libxcb1 libxcb-util1 libx11-xcb1 libxrender1 libxrandr2 libxi6
复制代码 虽然这些库的安装可能会解决某些依赖性问题,但由于没有涵盖所有XCB相关的依赖项,因此大多数情况下问题依然存在。
- 重装OpenCV或重装PySide6:
实验通过重新安装OpenCV或重装PySide6来解决问题,命令如下:
- pip uninstall opencv-python
- pip install PySide6
- pip install opencv-python
- pip install PySide6
复制代码 虽然重新安装OpenCV可以确保所有OpenCV组件被正确设置,但由于问题的根源在于Qt和XCB的依赖性,而非OpenCV本身,所以这种方法通常不会解决问题。
- 低沉OpenCV或Qt版本:
一些开发者可能会实验通过低沉OpenCV或Qt的版原来解决兼容性问题。然而,这种方法也没有奏效,更换版本有时甚至会引入其他问题,导致新的兼容性问题。
4. 最终有效的解决方案
经过一番深入的探索,最终找到了一个有效的解决方案,即通过以下命令安装所有与libxcb相关的库:
- sudo apt install libxcb-*
复制代码 这条命令会安装所有以libxcb为前缀的库,确保系统中所有与XCB相关的依赖项都被正确安装。这一步乐成解决了Qt无法加载xcb插件的问题,步伐也顺遂启动并运行。这表明,问题的根源在于某些关键的XCB依赖项缺失,而通过这种“一网打尽”的方式,我们可以确保所有相关的依赖项都得到满足。
这时再次运行py步伐,我久违的界面就出现了。返回去看应该是某些关键的XCB依赖项缺失了,用这个命令正好安装了此中所需的。至于详细是哪个起到了作用,还真是难说,不干涉题是解决了。
7. 参考资料
- Qt Documentation
- Ubuntu Packages
- XCB Documentation
- solved: Could not load the Qt platform plugin “xcb”
如果你在解决类似问题时有其他见解或想法,欢迎在批评区分享!希望这篇文章对你有所帮助。
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。 |