Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

一个月没打开代码,运行时报错:/opt/anaconda3/envs/pyqt_env/bin/python /home/yqp/PycharmProjects/PYQT/3D.py QObject::moveToThread: Current thread (0x63821dc6b3c0) is not the object's thread (0x63821fdb4f30). Cannot move to target thread (0x63821dc6b3c0) qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/opt/anaconda3/envs/pyqt_env/lib/python3.7/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, minimal, minimalegl, offscreen, vnc, webgl. Process finished with exit code 134 (interrupted by signal 6: SIGABRT)

OpenCV 在被导入时,会偷偷把自己的 Qt 插件路径 “告诉” Qt;Qt 启动时会按 “OpenCV 插件路径 → 系统插件路径” 的顺序找 xcb 插件;

第一步:彻底重置并激活环境

# 1. 彻底退出所有 conda 环境(执行多次直到无 (base)/(pyqt_env) 前缀)
conda deactivate
conda deactivate

# 2. 重新注册 conda 函数(修复环境激活失效问题)
source /opt/anaconda3/etc/profile.d/conda.sh

# 3. 重新激活 pyqt_env(确保是“真激活”)
conda activate pyqt_env

# 4. 关键验证(必须通过)
which python
# ✅ 输出必须是:/opt/anaconda3/envs/pyqt_env/bin/python

# 5. 测试 PyQt5 可导入
python -c "from PyQt5.QtWidgets import QApplication; print('PyQt5 OK')"
# ✅ 输出:PyQt5 OK

第二步:物理屏蔽 OpenCV 的 Qt 插件(根除冲突)
# 进入 cv2 插件目录,重命名 Qt 插件文件夹(仅执行一次)
cd /opt/anaconda3/envs/pyqt_env/lib/python3.7/site-packages/cv2/
mv qt qt_bak  # 备份并禁用 OpenCV 自带的 Qt 插件
第三步:修改代码开头的配置(仅保留核心)

确保代码第一行就指定系统 Qt 插件路径,避免被覆盖:

# ========== 第一行必须是这个配置,绝对不能晚! ==========
import os
import sys

# 强制指定系统原生 Qt 插件路径(兼容系统 xcb 库)
os.environ['QT_QPA_PLATFORM_PLUGIN_PATH'] = "/usr/lib/x86_64-linux-gnu/qt5/plugins/platforms"
os.environ['QT_PLUGIN_PATH'] = ""  # 清空其他插件路径
os.environ['LD_LIBRARY_PATH'] = "/usr/lib/x86_64-linux-gnu:$LD_LIBRARY_PATH"

# ========== 之后再导入所有库 ==========
import cv2
import numpy as np
import torch
# ... 其余代码不变

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值