python打包exe,打包好后,启动exe报错找不到paddleocr

news2024/11/24 3:36:36

目录

1、安装pyinstaller

2、生成脚本文件的.spce文件

 3、资源文件配置

4、生成exe文件

5、使用了paddleocr启动exe后报错

6、配置.spce文件

7、重新生成exe文件

8、关于图片找不到的问题


参考:PaddleOCR打包exe--Pyinstaller_paddleocr 打包exe_mjiansun的博客-CSDN博客

 打包好后启动exe报错如图所示:

从头开始讲起。

1、安装pyinstaller

打包需要使用到pyinstaller,需要用pip安装

pip install pyinstaller

2、生成脚本文件的.spce文件

安装好以后,在cmd窗口输入以下命令,生成脚本文件的.spce文件

pyi-makespec script.py

生成后可以看到.py文件同目录下存在一个同名的.spce文件,双击打开后可以看到内容如下:

 

参数的含义如下:

Analysis主要接收一系列的脚本名作为输入,它会分析所有导入的模块以及其他依赖等。Analysis类中的pathex定义了打包的主目录,对于在此目录下的py文件可以只写文件名不写路径。

PYZ会生成所有相关pyz文件并进行归档,最终会打包进可执行文件中

EXE会在分析好的脚本以及pyz文件基础上生成可执行文件。其中,Console=False代表程序运行时不带CMD窗口。

COLLECT文件夹模式下,COLLECT会创建用于存放各文件的文件夹。而单文件模式下,COLLECT不会被用到,EXE会直接接收所有的脚本,模块以及二进制文件。所以,如果是-F参数(单文件)生成的spec文件是不会有这个类的。

Analysis.datas这可以设置在打包后的程序中添加资源文件。比如:datas=[(‘./a.txt’, ‘.’),(‘./b.jpg’, ‘.’)],这个就是将打包时工作目录中的a.txt文件和b.jpg作为资源文件,最后复制到打包后的目录下。如果还有其它资源文件,则继续添加元组。

Analysis. hiddenimports这个可以设置打包程序时要导入的库的名称。如:hiddenimports=[‘pandas’, ‘numpy’]

Analysis. excludes:这个可以设置打包程序时不要导入的库的名称。如:excludes=[‘pandas’, ‘numpy’]

EXE. exclude_binaries设置打包模式,True:文件夹模式;False:单文件模式。

EXE.upx设置是否使用upx压缩。

EXE.upx_excludeupx压缩时跳过压缩项。比如upx_exclude =[‘vcruntime140.dll’] 则代表压缩时不压缩vcruntime140.dll动态库。

EXE.console设置是否在运行程序时显示cmd窗口。True代表显示,False代表不显示。建议第一次打包时带上。如果运行出现什么问题,可以在cmd窗口中显示。

EXE. icon设置程序的图标。

 3、资源文件配置

如果没有使用到图片资源等,就可以直接使用命令生成exe了,如果使用了图片资源则在.spce的datas=[]中添加资源文件名字。在这里,我使用了一个文件夹存放使用到的所有图片,就可以这样写:

datas=[('res','res')],

4、生成exe文件

在cmd中输入以下命令,等待一段时间看到输出的成功完成就可以了

pyinstaller script.spec

打包好后会生成两个文件夹,分别是build和dist,exe就在dist里面,build可以直接删除我们使用不到。

进入dist可以看到以下文件,“_internal”就是打包好所需的环境:

启动.exe就可以使用了

5、使用了paddleocr启动exe后报错

如果在脚本中使用了paddleocr启动exe后可能会报错,需要配置.spce配置文件如图所示:

 

6、配置.spce文件

在pathex和binaries中填写虚拟环境或者其他python路径下的paddleocr与paddle\\libs:

pathex=['xxxx\\Python\\Python39\\Lib\\site-packages\\paddleocr',	' xxxx \Python\\Python39\\Lib\\site-packages\\paddle\\libs'],
binaries=[('xxxx\\Python\\Python39\\Lib\\site-packages\\paddleocr','.'),	('xxxx\\Python\\Python39\\Lib\\site-packages\\paddle\\libs','.')],

7、重新生成exe文件

保存后再执行pyinstaller script.spec,双击exe就可以正常运行了。

下面是我的脚本:

8、关于图片找不到的问题

使用的图片可能找不到,其实图片已经打包到_internal文件夹下了,把exe文件放到_internal文件下,或把资源文件夹放到与exe同级就可以了,如图:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1289190.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

智能监控/安防监控视频平台EasyCVR下级更新目录表出现离线情况的两种解决方案

GB28181安防视频监控/视频集中存储/云存储/磁盘阵列EasyCVR平台可拓展性强、视频能力灵活、部署轻快,可支持的主流标准协议有国标GB28181、RTSP/Onvif、RTMP等,以及支持厂家私有协议与SDK接入,包括海康Ehome、海大宇等设备的SDK等。平台既具备…

esp32使用命令查看芯片flash大小以及PSRAM的大小

在idf.py命令窗口中输入 esptool.py -p COM* flash_id 其中COM*是连接你的esp32芯片的端口号。

打工人副业变现秘籍,某多/某手变现底层引擎-StableDiffusionWebUI界面基本布局和操作

一、界面设置 文生图:根据文本提示生成图像 图生图:图像生成图像;功能很强大,自己在后续使用中探索。 后期处理:图片处理;功能很强大,自己在后续使用中探索。 PNG信息:这是一个快…

“轻松管理视频文件:高效归类与统一重命名“

随着电子设备的普及,我们的视频文件可能来自各种不同的源头,如何高效地管理和查找这些文件成为了一个问题。今天,我们将为您提供一个完美的解决方案——自动归类并统一重命名视频文件。 首先,第一步,我们要进入文件批…

基于openEuler20.03安装openGauss5.0.0及安装DBMind

基于openEuler20.03安装openGauss5.0.0及安装DBMind 一、环境说明二、安装部署三、问题及解决 一、环境说明 虚拟机:VirtualBox操作系统:openEuler20.3LTS (x86)数据库:openGauss5.0.0 (x86)DBMind:dbmind…

智能优化算法应用:基于学生心理学算法无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于学生心理学算法无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于学生心理学算法无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.学生心理学算法4.实验参数设定5.算法结果…

Esxi6.0 安装web管理界面

安装6.0之后默认是vSphere Client进行远程连接,需要安装客户端,不是太方便。搜索发现还真可以实现web管理,步骤如下: 1、开启esxi的ssh,步骤如下图: 2、下载升级包esxui-signed-7119706.vib,上…

案例四:使用系统存储过程查看相关信息

1、什么是存储过程。 【1】模块化程序设计 【2】执行速度快,效率高 【3】减少网络流量 【4】具有良好的安全性 存储过程分为两类: 1、系统存储过程、2、用户自定义的存储过程 2、若xp_cmdshell作为服务器安全配置的一部分而被关闭,则需要配置…

力扣11.盛最多水的容器

题目描述 思路 用双指针法。 每次向内移动较短的那个板&#xff0c;能带来更大的效益。 代码 class Solution {public int maxArea(int[] height) {int res 0;int i 0,j height.length - 1;while(i < j){res height[i] < height[j] ? Math.max((j - i) * height…

祸害了人民3年的新冠消失了,但有些奇怪现象,让人百思不得其解

真是没想到啊&#xff0c;祸害我们3年的新冠病毒突然就消失了&#xff0c;但是紧接着呢&#xff0c;却有一个非常奇怪的现象出现了&#xff0c;真的是令人百思不得其解&#xff01; 新冠病毒&#xff0c;于2020年的开始&#xff0c;可以说根本就没有任何缓冲期&#xff0c;一开…

BUU SQL COURSE 1

四 发现有登录框&#xff0c;爆破半天也爆破不出来&#xff0c;只能从别的地方下手了 F12一下 发现了一个传参 进去发现id可以传参&#xff0c;sql注入一下试试 前三个都有回显&#xff0c;当id4的时候页面没有回显了&#xff0c;正好验证 了页面 有三个新闻 当order by 3的时…

docker安装及简单使用(Linux版本)

文章目录 前言一、docker安装二、docker命令pull&#xff08;安装镜像&#xff09;images&#xff08;查看镜像&#xff09;run&#xff08;创建容器&#xff09;删除容器exec&#xff08;进入运行中的容器&#xff09;常用命令 总结如有启发&#xff0c;可点赞收藏哟~ 前言 ht…

虚拟人如何在线下活动实现实时交互?动捕设备或为最优解

随着时代的进步&#xff0c;虚拟人凭借其打破时空界限、新颖差异化视觉效果等特点&#xff0c;在发布会、峰会等线下活动中发挥着重要作用&#xff0c;想要实现虚拟人在线下活动中实时交互&#xff0c;使用动捕设备可以让虚拟人化身虚拟主持人、虚拟主播、虚拟舞者演员等。 虚拟…

倒计时5天:SpinalHDL应用前景探索线上研讨会

SpinalHDL是一种开源的高级硬件描述语言&#xff0c;它可以作为VHDL或Verilog的替代&#xff0c;Charles Papon 在2014年创建后&#xff0c;伴随着数年来开源硬件设计的蓬勃发展&#xff0c;在多方面显露出优势&#xff0c;譬如&#xff1a;它专注于高效的硬件描述&#xff0c;…

【vue】点击导航菜单切换局部页面,打开展示默认栏目,页面刷新等问题

非专业前端&#xff0c;局限性较高&#xff0c;有些问题看起来很小&#xff0c;但是初次接触很棘手&#xff0c;需要查找很多博客&#xff0c;内容也很杂。以下只是过程中总结下来的&#xff0c;要解决的就是标题中的三个问题。 这是我需要达成的效果。 1.第一个是进入导航菜单…

25道Python练手题(附详细答案),赶紧收藏!Python入门|Python学习

题目 1&#xff1a;水仙花数 水仙花数&#xff08;Narcissistic number&#xff09;也被称为超完全数字不变数&#xff08;pluperfect digital invariant, PPDI&#xff09;、自恋数、自幂数、阿姆斯壮数或阿姆斯特朗数&#xff08;Armstrong number&#xff09; 水仙花数是指…

Python版本与opencv版本的对应关系

python版本要和opencv版本相对应&#xff0c;否则安装的时候会报错。 可以到Links for opencv-python上面查看python版本和opencv版本的对应关系&#xff0c;如图&#xff0c;红框内是python版本&#xff0c;绿框内是opencv版本。 查看自己的python版本后&#xff0c;使用下面…

keytool命令使用参考

Keytool 是一个Java应用程序&#xff0c;用于管理和维护数字证书和密钥。它通过命令行界面提供了一系列的操作&#xff0c;使得用户可以方便地创建、导入、导出和管理密钥库&#xff08;keystore&#xff09;中的证书和密钥。以下是关于keytool命令的详细介绍&#xff1a; &…

#Ts篇:PickOmit协变逆变Partial interface 与 type 有何区别

Pick Pick 接受两个类型参数&#xff0c;T 表示要从中选择属性的类型&#xff0c;K 表示选择的属性名的联合类型。通过映射类型&#xff0c;遍历联合类型 K 中的每个属性&#xff0c;然后从类型 T 中选择相应的属性。 type Pick<T, K extends keyof T> {[P in K]: T[P…

每天一点python——day88

#每天一点Python——88 #编程两大思想【面向过程与面向对象】 #如图&#xff1a; 面向过程的线性思维&#xff1a; 类似于做菜一步步的来&#xff0c;先怎么样怎么样&#xff0c;再怎么样 如果不一步步的来&#xff0c;例如先炒菜再点火&#xff0c;这样是做不好的 面向对象&a…