环境:
conda环境
yolov5-3.1
ubuntu18.04
python3.6
系统环境安装了Qt5.12.2
问题现象:
在执行训练脚本(train.py)时,对qt环境报错如下:
QObject::moveToThread: Current thread (0x3d9b720) is not the object's thread (0x5af24f0).
Cannot move to target thread (0x3d9b720)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "xxxx/anacondas/envs/xxx/lib/python3.6/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.
Aborted (core dumped)
原因:
系统安装的qt与 opencv-python
中的qt依赖冲突。
解决办法:
这种情况下,如果不存在GUI显示(
imshow)
a)我们需要删除
opencv-python
b) 安装opencv-python-headless
否则,
a) 或卸载已经安装的Qt5.12.2版本。进而保证opencv-python依赖正常。
b)或改变opencv-python依赖路径【理想状态】。
参考地址: