(已解决)Ubuntu运行pyqt和opencv程序时候出现qt.qpa.plugin: Could not load the Qt platform plugin “xcb“

部署运行你感兴趣的模型镜像

在unbuntu下运行pyqt和opencv库的程序报错:
 

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

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/zlzk/anaconda3/envs/ros/lib/python3.9/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.

在网上找了很多方法,卸载库,安装库,甚至重新创建虚拟环境,都没用,焦头烂额,后来找到了一个
外网的博主的方法,运行,一秒解决问题!

首先将opencv-python卸载,这里的原因应该是pyqt与opencv-python的一些兼容性问题

pip uninstall opencv-python

然后安装 opencv-python-headless 记得换源,这里我使用的是清华源

pip install opencv-python-headless -i https://pypi.tuna.tsinghua.edu.cn/simple

最后是安装与报错内容xcb相关的库

sudo apt-get install '^libxcb.*-dev' libx11-xcb-dev libglu1-mesa-dev libxrender-dev libxi-dev libxkbcommon-dev libxkbcommon-x11-dev


如果按照此方法未解决问题,可以去原网站看看还有没有其他解决方案。

网站如下:
https://github.com/NVlabs/instant-ngp/discussions/300
https://stackoverflow.com/questions/52337870/python-opencv-error-current-thread-is-not-the-objects-thread/72090539#72090539

您可能感兴趣的与本文相关的镜像

Python3.10

Python3.10

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

### 解决方案 当遇到 `qt.qpa.xcb: could not connect to display` `Could not load the Qt platform plugin "xcb"` 错误时,通常是因为缺少必要的依赖项或者环境配置不正确。以下是几种可能的解决方案: #### 安装缺失的库 确保安装了所有必需的 XCB其他图形界面支持包。可以尝试运行以下命令来安装这些库: ```bash sudo apt-get update sudo apt-get install libxcb-util1 libxrender1 libxkbcommon-x11-0 libfontconfig1 ``` #### 设置 DISPLAY 变量 如果是在无头服务器环境中运行应用程序,则需要设置 `DISPLAY` 环境变量指向有效的显示设备或使用虚拟帧缓冲区服务如 Xvfb (X Virtual Framebuffer) 来模拟显示器。 对于临时会话,可以在启动应用前通过命令行设定此变量: ```bash export DISPLAY=:0 ``` 为了使更改永久生效,可将上述指令添加到 `.bashrc` 或者其他 shell 配置文件中[^1]。 #### 使用无头模式 某些情况下,特别是执行图像处理而不涉及 GUI 显示的任务时,可以通过指定 QT_QPA_PLATFORM 参数强制禁用窗口系统集成: ```bash QT_QPA_PLATFORM=offscreen python your_script.py ``` #### 更新或重新安装 PyQt/PySide 版本 有时问题可能是由于特定版本之间的兼容性引起的;更新至最新稳定版或是回滚到之前已知正常工作的版本可能会有所帮助。另外也可以考虑完全卸载并重装相关软件包以排除潜在损坏的可能性[^2]。 #### 替代方法 针对 OpenCV 的情况,既然已经发现调用 `cv2.imshow()` 导致错误发生,那么可以选择保存图像而不是试图弹窗展示它们作为变通办法。例如修改代码如下所示: ```python import cv2 image = cv2.imread('example.jpg') # 不再使用 imshow() cv2.imwrite('output_image.png', image) print("Image saved successfully.") ``` 以上措施应该能够有效缓解乃至彻底消除所提到的问题。不过具体实施效果还需视实际情况而定,请根据自身需求选取最合适的应对策略[^4]。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值