Python环境下如何编译启用QT支持的OpenCV库
报错根因
调用cv2.createButton()时抛出The library is compiled without QT support in function 'cv::createButton'错误,是因为当前Python环境安装的OpenCV预编译包构建阶段未开启Qt后端支持。默认PyPI源分发的opencv-python、opencv-python-headless等官方预编译包为了控制安装包体积,默认关闭Qt编译选项,HighGUI模块依赖Qt的按钮、高级交互控件功能会被禁用。
编译启用Qt支持的OpenCV操作步骤(PyCharm环境通用)
- 清理原有冲突包
打开PyCharm底部内置Terminal终端,确保终端激活的是当前项目使用的Python虚拟环境,执行以下命令卸载所有已安装的OpenCV相关包,避免版本冲突:pip uninstall opencv-python opencv-python-headless opencv-contrib-python opencv-contrib-python-headless -y - 安装编译前置依赖
终端执行命令安装Python层面的编译依赖:
不同操作系统需要提前安装对应系统层编译依赖:pip install numpy cmake- Windows:安装Visual Studio 2019/2022,勾选「使用C++的桌面开发」组件
- macOS:终端执行
xcode-select --install安装命令行开发工具,再通过brew安装qt@5 - Ubuntu/Debian系Linux:终端执行
sudo apt install build-essential qtbase5-dev libgtk-3-dev pkg-config
- 本地编译安装带Qt支持的OpenCV
终端执行以下命令,强制pip在本地拉取OpenCV源码,传入开启Qt支持的编译参数完成构建,不需要手动下载源码、手动配置cmake:pip install opencv-python --no-binary opencv-python --config-settings="WITH_QT=ON" --config-settings="WITH_OPENGL=ON" --config-settings="CMAKE_BUILD_TYPE=Release" - 编译结果验证
安装完成后,在PyCharm的Python控制台执行以下代码,查看OpenCV构建信息:
在输出内容中找到Qt配置项,若状态显示为import cv2 print(cv2.getBuildInformation())YES且标注了对应Qt版本,即代表Qt支持已成功启用,cv2.createButton()接口可正常调用。
本地编译时长根据设备性能不同在5-20分钟不等,编译过程中不要关闭终端或中断进程,否则会导致编译失败。如果需要用到OpenCV contrib扩展模块的功能,把上述安装命令里的
opencv-python替换为opencv-contrib-python即可,编译参数保持不变。
内容的提问来源于stack exchange,提问作者Omkar Dalvi
相关产品推荐
相关产品推荐

