在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