Ubuntu 22.04中解决Could not load the Qt platform plugin “xcb“问题解

[复制链接]
发表于 2024-8-24 09:57:38 | 显示全部楼层 |阅读模式
摘要:在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上运行时,终端报出了以下错误:
  1. 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.
  2. This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.
  3. 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相关的底子库,如:
    1. sudo apt-get install libxcb1 libxcb-util1 libx11-xcb1 libxrender1 libxrandr2 libxi6
    复制代码
    虽然这些库的安装可能会解决某些依赖性问题,但由于没有涵盖所有XCB相关的依赖项,因此大多数情况下问题依然存在。
  • 重装OpenCV或重装PySide6
    实验通过重新安装OpenCV或重装PySide6来解决问题,命令如下:
    1. pip uninstall opencv-python
    2. pip install PySide6
    3. pip install opencv-python
    4. pip install PySide6
    复制代码
    虽然重新安装OpenCV可以确保所有OpenCV组件被正确设置,但由于问题的根源在于Qt和XCB的依赖性,而非OpenCV本身,所以这种方法通常不会解决问题。
  • 低沉OpenCV或Qt版本
    一些开发者可能会实验通过低沉OpenCV或Qt的版原来解决兼容性问题。然而,这种方法也没有奏效,更换版本有时甚至会引入其他问题,导致新的兼容性问题。

4. 最终有效的解决方案

经过一番深入的探索,最终找到了一个有效的解决方案,即通过以下命令安装所有与libxcb相关的库:
  1. 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企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

登录后关闭弹窗

登录参与点评抽奖  加入IT实名职场社区
去登录
快速回复 返回顶部 返回列表