Paddle使用pyinstaller打包出错的解决方法
使用PyQt5开发了一个基于paddle ocr的文字识别程序,打包的时候报错了。给大家分享一下解决方法https://juejin.cn/post/7287562282669883451
- 为了测试paddle模块的打包问题,所以当前demo.py只引用了paddleOCR模块
- demo.py
from paddleocr import PaddleOCR
def ocr_text(path):try:ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)text = ocr.ocr(path, cls=True)result = []for t in text[0]:txt = t[1][0]result.append(txt)return resultexcept:passif __name__ == '__main__':ocr_text("./screen.png")
步骤一:显式导入依赖项
- 显式导入依赖项:在你的demo.py文件中,尝试显式导入项目的依赖项,例如paddle和framework_pb2,有助于帮助pyinstaller正确识别这些依赖项。在demo.py文件的顶部添加以导入语句:
import paddle
from paddle.fluid.proto import framework_pb2
步骤二:pyinstaller的.spec文件中加入–add-data选项
- 将paddle所需的文件包含进去。通常包括ocr的模型文件和其他依赖项。
--add-data选项将本地paddle路径path/to/paddle目录文件添加到生成的可执行文件中,使用;分割,./paddle代表的是生成文件的同级目录下的paddle文件中。
pyinstaller --add-data "path/to/paddle;./paddle" --add-data "path/to/paddleocr;./paddleocr"
完成程序和打包脚本
demo.py
from paddleocr import PaddleOCR
import paddle # 新增
from paddle.fluid.proto import framework_pb2 # 新增def ocr_text(path):try:ocr = PaddleOCR(use_angle_cls=True, use_gpu=False)text = ocr.ocr(path, cls=True)result = []for t in text[0]:txt = t[1][0]result.append(txt)return resultexcept:passif __name__ == '__main__':ocr_text("./screen.png")
- 打包处理
--add-data添加选项包到程序目录中,-F将生成一个单一的可执行文件。
pyinstaller -F demo.py --add-data "path/to/paddle;./paddle" --add-data "path/to/paddleocr;./paddleocr"
相关文章:
Paddle使用pyinstaller打包出错的解决方法
使用PyQt5开发了一个基于paddle ocr的文字识别程序,打包的时候报错了。给大家分享一下解决方法https://juejin.cn/post/7287562282669883451 为了测试paddle模块的打包问题,所以当前demo.py只引用了paddleOCR模块demo.py from paddleocr import PaddleO…...
【Java acm】特殊输入
input: [[1,2,3 ], [4, 5,6], [7,8]] output: [[1, 2, 3], [4, 5, 6], [7, 8]] 思路 按行读入, 然后进行字符串处理, 将其他字符替换为空字符.在split(,) repalceAll(“\s”,“”), 将所有空白字符替换成空字符(包括空格, 制表, 换行等) 代码实现 import java.util.*;publ…...
在Ubuntu 20.04搭建最小实验环境
sudo apt-get -y install --no-install-recommends wget gnupg ca-certificates安装导入GPG公钥所需的依赖包。 sudo wget -O - https://openresty.org/package/pubkey.gpg | sudo apt-key add -导入GPG密钥。 sudo apt-get -y install --no-install-recommends software-p…...
使用uwsgi部署Flask
安装 这里直接使用包管理器提供的版本,不过建议大家使用pip来安装,会少一些坑: (Debian/Ubuntu) apt-get install uwsgi uwsgi-plugin-python3 或使用pip安装: pip3 install uwsgi 试试看 [demo.py] from flask import Flas…...
Android平台实现lottie动画
1、lottie动画简介 Lottie 是一个应用十分广泛动画库,适用于Android、iOS、Web、ReactNative、Windows的库,它解析了用Bodymovin导出为json的Adobe After Effects动画,并在移动和网络上进行了原生渲染。它提供了一套完整得从AE到各个终端的…...
JAVA练习百题之求矩阵对角线之和
题目:求一个3*3矩阵对角线元素之和 程序分析 求一个3x3矩阵的对角线元素之和,我们需要将矩阵的左上到右下以及左下到右上两条对角线上的元素相加。 一个3x3矩阵如下所示: 1 2 3 4 5 6 7 8 9左上到右下的对角线元素和为1 5 9 15&…...
MEM备考打卡
今天是2023.10.9距离考试还有75天 三年前就想考MEM每次总是有各种原因最后选择了放弃,没时间、自制力差、害怕失败。。。。放弃后确还是会想如果自己当时没有放弃是不是就能考上,所以这次不管能不能考上拼搏75天,不能总是停留在想象。加油&a…...
短视频矩阵源码开发部署---技术解析
一、短视频SEO源码搜索技术需要考虑以下几点: 1. 关键词优化:通过研究目标受众的搜索习惯,选择合适的关键词,并在标题、描述、标签等元素中进行优化,提高视频的搜索排名。 2. 内容质量:优质、有吸引力的内…...
百度小程序制作源码 百度引流做关键词排名之技巧
百度作为国内最大的搜索引擎,对于关键词排名和流量获取的策略格外重要,下面给大家分享一个百度小程序制作源码和做百度引流、关键词排名的一些技巧。 移动设备的普及和微信小程序的火热,百度也推出了自己的小程序。百度小程序与微信小程序类…...
【计算机组成 课程笔记】7.3 高速缓存 Cache
课程链接: 计算机组成_北京大学_中国大学MOOC(慕课) 7 - 5 - 705-高速缓存的工作原理(16-00--)_哔哩哔哩_bilibili 在【计算机组成 课程笔记】7.1 存储层次结构概况_Elaine_Bao的博客-CSDN博客中提到,因为CPU和内存的速度差距越来…...
vscode搭建c/c++环境
1. 安装mingw64 2.vscode安装c/c插件,run插件 3.在workspace/.vscode文件夹下新建三个文件: 1)c_cpp_properties.json { "configurations": [ { "name": "Win32", "includePath": [ "${wor…...
macOS Sonoma 14.0(23A344) 正式版带 OpenCore 0.9.6 和 FirPE 三分区镜像
macOS Sonoma 14.0(23A344) 正式版官方镜像百度网盘 请输入提取码 https://www.aliyundrive.com/s/sMUUedQdoiu 提取码 71dzmacOS Sonoma 14.0(23A344) 正式版带 OpenCore 0.9.6 和 FirPE 引导百度网盘 请输入提取码 https://www.123pan.com/s/o6d9-BdMX.html 提取码 5Pc2macO…...
神经网络(MLP多层感知器)
分类 神经网络可以分为多种不同的类型,下面列举一些常见的神经网络类型: 前馈神经网络(Feedforward Neural Network):前馈神经网络是最基本的神经网络类型,也是深度学习中最常见的神经网络类型。它由若干个…...
git与github的交互(文件与文件夹的上传)
git与github的交互(文件与文件夹的上传) 准备:gitHub账号(创建一个新项目)与Git软件的安装 一:开启公钥SSH登录(之前配置过就跳过) 1.安装SSH 在本地新创建文件夹负责装载项目&a…...
Visual Studio常见编译错误记录
错误1:错误(活动)E0020未定义标识符 “sleep” sleep(3000); //将小写sleep改为 Sleep Sleep(3000);错误2:错误 C4996 ‘fopen’: This function or variable may be unsafe. Consider using fopen_s instead. To disable deprecation, use _CRT_SECURE…...
如何应对数据安全四大挑战?亚马逊云科技打出“组合拳”
数字经济时代,数据被公认为继土地、劳动力、资本、 技术之后的又一重要生产要素。对于企业而言,数据则是一切创新与关键决策的根源。 然而,企业在发挥数据资产的商业价值方面,却面临诸多挑战,比如敏感数据识别、跨组织…...
JavaScript——数据类型、类型转换
数据类型 计算机世界中的万事万物都是数据。 计算机程序可以处理大量的数据,为什么要给数据分类? 更加充分和高效的利用内存也更加方便程序员的使用数据 基本数据类型 number 数字型 JavaScript中正数、负数、小数等统一称为number JS是弱数据类型࿰…...
C位操作符
目录 一、位操作符 1.位与& 2.位或| 3.位取反~ 4.位异或^ 5.位与,位或,位异或的特点总结 6.左移位《《 右移位 》》 二、位与,位或,位异或在操作寄存器时的特殊作用 1.寄存器操作的要求(特定位改变而不…...
【linux进程(三)】进程有哪些状态?--Linux下常见的三种进程状态
💓博主CSDN主页:杭电码农-NEO💓 ⏩专栏分类:Linux从入门到精通⏪ 🚚代码仓库:NEO的学习日记🚚 🌹关注我🫵带你学更多操作系统知识 🔝🔝 Linux进程 1. 前言2. 操作系统…...
numString.charAt(i) - ‘0‘
numString.charAt(i) 表示获取字符串 numString 中第 i 个字符,这里假设该字符是数字 0 到 9 之间的一个字符。 0 是字符常量,表示数字 0 对应的字符。例如,字符 0 转换成数字就是 0,字符 1 转换成数字就是 1,以此类推…...
基于大模型的 UI 自动化系统
基于大模型的 UI 自动化系统 下面是一个完整的 Python 系统,利用大模型实现智能 UI 自动化,结合计算机视觉和自然语言处理技术,实现"看屏操作"的能力。 系统架构设计 #mermaid-svg-2gn2GRvh5WCP2ktF {font-family:"trebuchet ms",verdana,arial,sans-…...
设计模式和设计原则回顾
设计模式和设计原则回顾 23种设计模式是设计原则的完美体现,设计原则设计原则是设计模式的理论基石, 设计模式 在经典的设计模式分类中(如《设计模式:可复用面向对象软件的基础》一书中),总共有23种设计模式,分为三大类: 一、创建型模式(5种) 1. 单例模式(Sing…...
根据万维钢·精英日课6的内容,使用AI(2025)可以参考以下方法:
根据万维钢精英日课6的内容,使用AI(2025)可以参考以下方法: 四个洞见 模型已经比人聪明:以ChatGPT o3为代表的AI非常强大,能运用高级理论解释道理、引用最新学术论文,生成对顶尖科学家都有用的…...
OPenCV CUDA模块图像处理-----对图像执行 均值漂移滤波(Mean Shift Filtering)函数meanShiftFiltering()
操作系统:ubuntu22.04 OpenCV版本:OpenCV4.9 IDE:Visual Studio Code 编程语言:C11 算法描述 在 GPU 上对图像执行 均值漂移滤波(Mean Shift Filtering),用于图像分割或平滑处理。 该函数将输入图像中的…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
今日学习:Spring线程池|并发修改异常|链路丢失|登录续期|VIP过期策略|数值类缓存
文章目录 优雅版线程池ThreadPoolTaskExecutor和ThreadPoolTaskExecutor的装饰器并发修改异常并发修改异常简介实现机制设计原因及意义 使用线程池造成的链路丢失问题线程池导致的链路丢失问题发生原因 常见解决方法更好的解决方法设计精妙之处 登录续期登录续期常见实现方式特…...
Python基于历史模拟方法实现投资组合风险管理的VaR与ES模型项目实战
说明:这是一个机器学习实战项目(附带数据代码文档),如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 在金融市场日益复杂和波动加剧的背景下,风险管理成为金融机构和个人投资者关注的核心议题之一。VaR&…...
C#学习第29天:表达式树(Expression Trees)
目录 什么是表达式树? 核心概念 1.表达式树的构建 2. 表达式树与Lambda表达式 3.解析和访问表达式树 4.动态条件查询 表达式树的优势 1.动态构建查询 2.LINQ 提供程序支持: 3.性能优化 4.元数据处理 5.代码转换和重写 适用场景 代码复杂性…...
day36-多路IO复用
一、基本概念 (服务器多客户端模型) 定义:单线程或单进程同时监测若干个文件描述符是否可以执行IO操作的能力 作用:应用程序通常需要处理来自多条事件流中的事件,比如我现在用的电脑,需要同时处理键盘鼠标…...
华为OD机试-最短木板长度-二分法(A卷,100分)
此题是一个最大化最小值的典型例题, 因为搜索范围是有界的,上界最大木板长度补充的全部木料长度,下界最小木板长度; 即left0,right10^6; 我们可以设置一个候选值x(mid),将木板的长度全部都补充到x,如果成功…...
