[解决] Mac下使用opencv与pyqt发生冲突

您所在的位置:网站首页 qt与pyqt [解决] Mac下使用opencv与pyqt发生冲突

[解决] Mac下使用opencv与pyqt发生冲突

2023-09-11 17:02| 来源: 网络整理| 查看: 265

问题:You might be loading two sets of Qt binaries into the same process

本文用于记录一下解决问题的过程,若只需解决方法可以直接看文章最后部分

本文出现的问题应该是在Mac上才会出现

系统:Mac os 10.14

pyqt/opencv安装均在anaconda虚拟环境下进行

在使用opencv以及pyqt时出现以下错误

objc[2623]: Class QMacAutoReleasePoolTracker is implemented in both /anaconda3/envs/face/lib/python3.7/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore (0x116bc90f8) and /anaconda3/envs/face/lib/python3.7/site-packages/cv2/.dylibs/QtCore (0x11ef14700). One of the two will be used. Which one is undefined. objc[2623]: Class QT_ROOT_LEVEL_POOL__THESE_OBJECTS_WILL_BE_RELEASED_WHEN_QAPP_GOES_OUT_OF_SCOPE is implemented in both /anaconda3/envs/face/lib/python3.7/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore (0x116bc9170) and /anaconda3/envs/face/lib/python3.7/site-packages/cv2/.dylibs/QtCore (0x11ef14778). One of the two will be used. Which one is undefined. objc[2623]: Class KeyValueObserver is implemented in both /anaconda3/envs/face/lib/python3.7/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore (0x116bc9198) and /anaconda3/envs/face/lib/python3.7/site-packages/cv2/.dylibs/QtCore (0x11ef147a0). One of the two will be used. Which one is undefined. objc[2623]: Class RunLoopModeTracker is implemented in both /anaconda3/envs/face/lib/python3.7/site-packages/PyQt5/Qt/lib/QtCore.framework/Versions/5/QtCore (0x116bc91e8) and /anaconda3/envs/face/lib/python3.7/site-packages/cv2/.dylibs/QtCore (0x11ef147f0). One of the two will be used. Which one is undefined. QObject::moveToThread: Current thread (0x7fcc2cb0a6c0) is not the object's thread (0x7fcc2f06cf20). Cannot move to target thread (0x7fcc2cb0a6c0) 关键信息 You might be loading **two sets of Qt binaries** into the same process. Check that all plugins are compiled against the right Qt binaries. Export DYLD_PRINT_LIBRARIES=1 and check that only one set of binaries are being loaded. qt.qpa.plugin: Could not load the Qt platform plugin "cocoa" in "**/anaconda3/envs/face/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: cocoa, minimal, offscreen, webgl. 解决方法一

在路径/anaconda3/envs/face/lib/python3.7/site-packages/cv2/下删除qt文件夹即可

但是这么做存在一定问题:在删除qt文件夹后正常的只含有cv2的程序无法正常运行(显然是拆东墙补西墙)

但是应急的话应该是没问题的

解决方法二——最终解决

出现问题的原因在于mac版本下安装的opencv包含有一些qt的头文件与pyqt中的发生了冲突,导致无法正确导入相应的包,需要将其更换

按照以下步骤进行

删除原有的opencv,删除过程中出现y/n选择y即可 pip uninstall opencv-python 安装opencv–headless版本 pip install opencv-contrib-python-headless

至此应该就可以同时正常运行cv2和pyqt了



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3