QT(C++) + OpenCV + Python库打包发布可执行EXE

2023-05-16

QT(C++) + OpenCV + Python库打包发布可执行EXE

背景

最近写了一个操作界面,不仅用到了OpenCV的函数,还调用了一个python脚本,所以这里记录一下如何将其打包成可以在非开发环境下执行的.exe程序。

踩坑实录

打包过程参考了博客:

QT+Opencv 程序打包发布(超级详细版+常见错误解决)

但是有几个坑需要补充说明。

一、利用windeployqt添加依赖项报错

按照步骤在自定义文件夹下运行windeployqt,报错:Unable to find the platform plugin.

报错原因

是QT5.14.0版本的自身的bug。
参考:

[1] Qt5.14.0在Windows环境下使用Qt自带程序windeployqt发布失败提示Unable to find Platform Plugin的问题
[2] 使用Qt 5.14.0自带的windeployqt打包程序提示Unable to find Platform Plugin的解决方法

解决方法

升级QT,从QT5.14.0升级为QT5.14.2。

QT 5.14.2的下载地址及安装步骤:

下载地址:https://download.qt.io/archive/qt/5.14/5.14.2/
安装步骤:自行百度

二、利用Dependencies查找程序依赖项

原博客1中提到,使用hap-depends查找程序用到的依赖项,但是亲测hap-depends在win10系统下很卡,无法正常运行。因此,找到了Dependencies替代hap-depends。

参考博客:
VC++开发必备神器 – Dependencies,查看依赖库DLL,支持win10,比depends更好用

Dependencies下载地址:https://github.com/lucasg/Dependencies

三、添加Python库

因为要打包的文件调用了Python脚本,因此,还需要在文件夹下添加Python库函数和.dll文件。

步骤

  1. 在test文件夹下创建Python37文件夹(其中37代表了Python的版本,如果是使用其他版本的Python,可以使用其他数字替代);
  2. 将Python安装路径下的:
    • DLLs
    • include
    • Lib
    • libs
    • python3.dll
    • python37.dll
    • vcruntime140.dll
      复制到Python37文件夹下;
      注意:这里如果是使用Anaconda安装的Python,则直接拷贝 Anaconda文件夹下的这些文件夹及.dll文件,而不是conda创建的虚拟环境下的文件(不要拷贝"../Anaconda/envs/../"路径下的文件)。
  3. 将调用的python脚本添加至test文件夹下;
  4. 在程序中,添加语句:
// 指定python库地址
Py_SetPythonHome((wchar_t *)(L"./Python37"));

重新在release模式下编译生成.exe文件后,copy至test文件夹中即可。


  1. https://blog.csdn.net/qq_43599883/article/details/106251915 ↩︎

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

QT(C++) + OpenCV + Python库打包发布可执行EXE 的相关文章

  • XShell 收费?5款免费且超赞的SSH工具,一个比一个香

    SSH客户端是后端程序员日常工作必备的工具之一 xff0c 一款趁手的工具也能让工作效率事半功倍 xff1b 上周的时候 xff0c 有小伙伴在群里面求免费的SSH软件 xff1b 说来也坑 xff0c 公司不允许使用PJ版的 xff0c
  • LaTeX公式按照章节编号

    LaTeX公式按照章节编号 问题 xff1a 如何让LaTeX公式按照章节编号 xff1f 答案 xff1a 在导言区加入如下语句 usepackage amsmath numberwithin equation section
  • xrdp 老版本返回上一次登录以及error - problem connecting

    连接服务器失败总结以下几种处理方式 xff1a 首先确定不是网络问题 xff0c ping ip地址 说明服务器端的网络没有问题 xff0c 通常linux开机默认监听22 3350 3389几个端口 22端口是用来连接ssh xff0c
  • C51编程23-应用篇(HC 06蓝牙模块)

    现在的手机 平板 xff0c 笔记本电脑都会自带蓝牙 本文将会介绍51单片机使用HC 06 蓝牙模块实现手机与笔记本电脑的通讯 HC 06 模块 购买HC 06模块后需要检测蓝牙模块是否是好的 xff0c 使用串口线与HC 06 模块连接起
  • BiliBili自动签到

    前情提要 emmm怎么突然会出这个教程呢 xff0c 因为俺要白嫖TX xff0c 如下图 xff1a 这是腾讯云函数公众号的一个搭建环境送礼品的活动 xff0c 截止日期 xff1a 10 9 这活动多亏群友分享 xff0c 不然俺也不知
  • RHEL8-配置IP地址

    前导 本文主要讲解如何重启RHEL 8或者CentOS 8网络以及如何解决RHEL8和CentOS8系统的网络管理服务报错 xff0c 当我们安装好RHEL 8或者 CentOS 8 xff0c 重启启动网络时 xff0c 会出现以下报错
  • redhat-8-0重置root密码

    前导 如果你忘记了RHEL 8系统中的root密码 xff0c 那就得重置root密码 xff0c 以下为在Grub启动菜单中在RHEL 8上进行手动密码恢复 引导 重启RHEL 8系统 将系统重启 xff0c 在看到grub菜单后 xff
  • Debian10使用本地ISO搭建APT源

    前言 这是个坑 xff01 是个大坑 xff01 如果在配置debian10本地源的时候 xff0c 直接使用apt cdrom add命令创建本地源后 xff0c 在安装软件的时候会有很大几率找不到软件包的位置然后报错 报错 E The
  • Debian10.x创建Raid5

    技术简介 RAID5技术是把硬盘设备的数据奇偶校验信息保存到其他硬盘设备中 RAID 5磁盘阵列组中数据的奇偶校验信息并不是单独保存到某一块硬盘设备中 xff0c 而是存储到除自身以外的其他每一块硬盘设备上 xff0c 这样的好处是其中任何
  • Debian10.x创建NFS

    技术简介 NFS xff08 网络文件系统 xff09 服务可以将远程Linux系统上的文件共享资源挂载到本地主机的目录上 xff0c 从而使得本地主机 xff08 Linux客户端 xff09 基于TCP IP协议 xff0c 像使用本地
  • Windows下 gcc编译环境的构建(Sublime + Mingw)

    1 起源 Windows 7下VC 6 0装起来很困难 xff0c 不得不装了个Visual Studio 2010 Express 但感觉比庞大 xff0c 并且在程序运行的最后不会暂停 2 计划采用Sublime加Mingw构建一个gc
  • Linux下安装xrdp

    Linux下安装xrdp 使用rdp协议访问远程Linux桌面 一般情况下 xff0c 如果需要登陆远程Linux系统 xff0c 我们会使用ssh telnet来完成 xff0c 如果需要登陆到远程Linux系统的桌面环境 xff0c 我
  • bootstrap模态对话框宽度设置

    39 addFormbox 39 modal css width 39 auto 39 39 margin left 39 function return this width 2
  • Debian10.x简易配置DHCP服务器

    环境 Client 网卡1 系统 xff1a debian10 Server xff1a 三网卡IP 10 10 100 254 IP 172 16 100 254 IP xff1a 192 16 100 254 实施步骤 安装 apt i
  • haproxy各个指标的打印报告解析

    1 使用这个命令就可以获取haproxy所有的数据 span class hljs keyword echo span span class hljs string 34 show stat 34 span socat span class
  • CentOS7使用firewalld打开关闭防火墙与端口火墙与端口

    CentOS7使用firewalld打开关闭防火墙与端口火墙与端口 启动 xff1a systemctl start firewalld 关闭 xff1a systemctl stop firewalld 查看状态 xff1a system
  • poj 1752 Advertisement (区间差分约束+最长路 输出可行解)

    Advertisement Time Limit 1000MS Memory Limit 10000KTotal Submissions 919 Accepted 331 Special Judge Description The Depa
  • OSI 七层模型详解

    大家好 xff0c 我是蛋蛋 3T 43 技术学习视频资源 xff0c 500 43 技术电子书 xff0c 大量高效工具及网站 xff0c 私信回复 资源 即可免费获取 OSI xff08 Open System Interconnect
  • WebService的简单示例

    今天 xff0c 看到需求需要WebService进行通信 xff0c 所以我就先看看WebService是怎样的一个流程 xff0c 这里做个简单实例 首先我创建了两个工程 xff0c 一个为服务端 xff0c 另一个为客户端 part1
  • 今日头条2018校园招聘后端开发工程师 (第二批) 编程题 - 字母交换

    题目描述 xff1a 编码题 字符串S由小写字母构成 xff0c 长度为n 定义一种操作 xff0c 每次都可以挑选字符串中任意的两个相邻字母进行交换 询问在至多交换m次之后 xff0c 字符串中最多有多少个连续的位置上的字母相同 xff1

随机推荐

  • php 报错:A non-numeric value encountered

    意思是 39 遇到了非数值异常 39 xff0c 可能是你的代码里字符串拼接习惯性的将 39 39 写成了 39 43 39 所导致
  • linux系统变为只读,提示Read-only file system的解决办法

    mount o rw remount
  • 修改Debian登录窗口背景图片

    仅记录以便日后使用 xff1a 执行gresource export sh xff0c 将资源文件备份到 HOME shell theme目录将导出的 HOME shell theme theme中的所有文件 xff0c 保存到gnome
  • 【MySQL】Navicat修改数据库名称

    假设 xff1a 有一个数据库 xff0c 名称为A xff0c 需要修改为B 在Navicat中不可以按F2修改数据库的名称 xff0c 我们必须新建一个库 xff0c 命名为B 下面4种方式都可以实现目标 如果数据库中有远程表和权限设置
  • CityScapes数据集介绍

    CityScapes Cityperson数据集 xff0c 在16年CVPR上被提出 xff0c 是张姗姗一波人在CityScapes数据集上进行标注得到的行人检测数据集 做行人检测的应该都不陌生 在Replusion Loss和NMS
  • ARM学习(18) Jink Ozone调试总结

    笔者来聊聊Jink Ozone调试 1 Ozone加载选择elf或者bin Ozone调试的时候可以设置PC的位置 xff0c 主要有上面两种 从ELF读取PC位置 xff0c 调试时直接设置PC的初始位置从向量表中读取pc的初始值 xff
  • mac iCloud 关闭后 桌面文件不见了

    输入 user后回车 进入用户文件 打开iCloud Drive
  • 【模拟】AtCoder2160 Manhattan Compass

    分析 模拟实现题 把坐标轴转一下然后暴力求就行了 转了一下坐标轴 xff0c 问题就变成以p为中心 xff0c 与新的坐标轴平行的 xff0c 边长为2 d的正方形上的点能够与p相连 方便起见 xff0c 把答案分成两部分求 然后可以分别考
  • 处理爬虫是返回setCookie的一段js获取acw_sc__v2的方法

    处理爬虫是返回setCookie的一段js获取acw sc v2的方法 原文链接 setCookie JS反爬虫处理 处理代码 span class token keyword import span requests span class
  • C++ winpcap网络抓包代码实现,以及抓包内容解析。

    c 43 43 实现抓包代码 1 安装winpcap windows packet capture 是windows平台下一个免费 xff0c 公共的网络访问系统 开发winpcap这个项目的目的在于为win32应用程序提供访问网络底层的能
  • Python dataframe更换列名称

    方法1 使用pd rename函数 span class hljs operator a span span class hljs built in rename span columns 61 span class hljs string
  • 知识点2:Swift REPL

    关于REPL简介 REPL xff1a 英文缩写 xff08 Read Eval Print Loop xff09 即读取 执行 输出 循环的意思 Xcode 6 1 引入了另一种以交互式的方式体验Sw ift的方法 主要特点 xff1a
  • iOS 关于UIAlertController常见使用方法

    Step 1 警告框 1 代码 1 创建提示窗口 参数1 xff1b Title xff1a 标题 参数1 xff1b message xff1a 提示内容 参数1 xff1b Style 风格 UIAlertControllerStyle
  • 2023年最新版kali linux安装教程

    一 前期准备 前排提醒 xff0c 文末有绿色版安装包免费领取 xff01 二 VMware虚拟机配置 1 打开vmware xff0c 点击创建新的虚拟机 2 选择自定义 高级 选项 xff0c 点击下一步 3 继续下一步 4 选择 稍后
  • CentOS7.1下 安装vncserver和删除vnc占有的端口

    今天给两台新服务器装CentOs7 1系统 xff0c 然后装VNCServer的时候感觉网上的教程要么复杂多此一举 xff0c 要么不清楚 xff0c 关于 list端口的部分都没讲 所以这里整理一下 xff0c 按着下面的顺序来就可以了
  • mac使用虚拟机(VirtualBox+centos7)搭建kubernetes(K8S)集群

    文章目录 说明一 环境准备1 配置主机网络2 配置磁盘空间3 安装虚拟机配置网络4 设置Linux环境 三台均需要设置 二 安装docker kubeadm kubelet kubectl 三台均需要设置 1 安装docker环境2 kub
  • .NET6入门:1.Windows开发环境搭建

    作为 NET的最新版本 NET6长期支持版已经发布 xff0c NET6宣称是迄今为止最快的 NET 那当然不能落下时代的潮流 xff0c 就让我们跟着文章进入 NET6的世界吧 1 NET6SDK下载 Download NET Linux
  • 音视频编解码原理(一) 封装格式和编码方式简介

    一 封装格式 要了解音视频编解码原理 xff0c 首先需要知道什么是封装格式 xff1f 所谓封装格式 xff0c 就是将已经编码压缩好的视频轨和音频轨按照一定的格式封装到一个文件中 xff0c 一般情况下 xff0c 不同的封装格式对应不
  • VS调试方法总结(二)

    通过结构化异常定位崩溃程序 程序崩溃时 xff0c 生成文本文件 xff0c 记录崩溃得堆栈信息 直接上代码 已经编译通过 xff0c 拷贝直接可用 h include lt Windows h gt include lt stdarg h
  • QT(C++) + OpenCV + Python库打包发布可执行EXE

    QT xff08 C 43 43 xff09 43 OpenCV 43 Python库打包发布可执行EXE 背景 最近写了一个操作界面 xff0c 不仅用到了OpenCV的函数 xff0c 还调用了一个python脚本 xff0c 所以这里