我使用pyqt5和opencv创建了一个GUI应用程序。该应用程序在不激活虚拟环境的情况下工作正常,但当我激活虚拟环境并运行该应用程序时,它显示以下错误:
QObject::moveToThread: Current thread (0x125b2f0) is not the object's thread (0x189e780).
Cannot move to target thread (0x125b2f0)
qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/deepak/Desktop/SampleApp/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.
Aborted
我试着运行一个示例pyqt5代码(没有导入opencv)和另一个代码(只使用opencv),这两个代码在虚拟环境中都运行得很好。
操作系统:鹦鹉操作系统4.11
Python版本:3.9.2
4条答案
按热度按时间l7mqbcuq1#
问题是编译opencv时使用的Qt版本与PyQt5使用的版本不相似,从而导致冲突。
一个可能的解决方案是指示使用PyQt5使用的Qt插件。
对于PySide2:
更新:
更好的选择是使用QLibraryInfo来获取插件文件夹路径:
ncecgwcz2#
我通过降级cv 2版本解决了这个问题,只需运行
python3 -m pip安装开放式控件-python==4.1.0.25
我以前有个网站4.5.3.56
hzbexzde3#
一个简单的解决方案是删除您环境中的所有openCV
pip uninstall opencv-python opencv-python-headless opencv-contrib-python
然后安装
pip install opencv-python-headless
dsekswqp4#
我找到了解决这个问题方法,通过pip安装opencv-python-headless而不是opencv-python。但是使用opencv-python-headless,当使用cv2.imshow或cv2.namedWindow尝试打开图像窗口时,它会导致opencv问题。
我收到此错误
回溯(最近的呼叫排在最后):文件“",第1行,在cv 2中。错误:/pip-req-build-4x 5 kub 8 r/opencv/模块/高图形用户界面/源代码/窗口。错误:(-2:未指定的错误)函数未实现。请使用Windows、GTK+ 2.x或可可支持重建库。如果您使用的是Ubuntu或Debian,请安装libgtk2.0-dev和pkg-config,然后重新运行cmake或配置函数“cvNamedWindow”中的脚本