当前位置: 首页 > news >正文

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是弱数据类型&#xff0…...

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,以此类推…...

跨引擎资源无缝迁移:Unity到Godot的资产转换革新方案

跨引擎资源无缝迁移:Unity到Godot的资产转换革新方案 【免费下载链接】unitypackage_godot Import assets from UnityPackage files into Godot 项目地址: https://gitcode.com/gh_mirrors/un/unitypackage_godot 在游戏开发领域,引擎间的资源迁移…...

避免Java Stream重复消费:高效过滤Map的策略

本文旨在解决Java Stream在多过滤场景中常见的IllegalStatexception,即流被重复消耗的问题。我们将深入讨论Java Stream的单次使用特性,通过将外部过滤条件转换为集合,优化Map的过滤操作,提供高效、符合最佳实践的解决方案&#x…...

Python从入门到精通(第08章):列表、元组、集合与字典

Python从入门到精通(第08章):列表、元组、集合与字典 开头导语 这是本系列第08章。本文采用"知识点讲解 + 错误示例 + 正确写法 + 自测清单"的结构,目标是让你不仅能看懂,还能独立写出可运行代码。建议你边看边敲,所有示例都亲自执行一次。 章节摘要 本章围…...

实战指南:如何用Hydra在Kali Linux上快速破解Telnet弱密码(附字典优化技巧)

Kali Linux渗透测试实战:Hydra高效破解Telnet服务的进阶技巧 在渗透测试和网络安全评估中,弱密码检测是基础但至关重要的环节。Telnet作为传统的远程管理协议,由于采用明文传输,成为安全测试的重点对象。本文将深入探讨如何利用Ka…...

GTE模型与Visual Studio智能编程插件的集成

GTE模型与Visual Studio智能编程插件的集成 1. 引言 作为一名每天要写大量代码的程序员,我经常遇到这样的情况:突然想不起来某个API的具体用法,或者需要查找某个功能的实现示例。传统的做法是打开浏览器,在各种文档和论坛中搜索…...

Struts2拦截器实战:从零构建权限控制与日志记录

1. Struts2拦截器机制解析 Struts2拦截器是框架最核心的机制之一,它采用AOP(面向切面编程)思想,在Action执行前后插入自定义逻辑。想象一下拦截器就像地铁安检系统:每个乘客(请求)都必须经过安检…...

保姆级教程:用snntorch在MNIST上训练你的第一个脉冲神经网络(附完整代码)

从零开始:用snntorch构建你的第一个脉冲神经网络手记 第一次接触脉冲神经网络(SNN)时,我被它模拟生物神经元放电的特性深深吸引。与传统人工神经网络不同,SNN通过离散的脉冲信号传递信息,更接近人脑的工作机…...

基于 Kinova Gen3 机械臂的家庭人机交互安全算法研究

随着服务机器人逐步进入家庭场景,人机交互(HRI)的安全性成为影响机器人普及的关键因素。相较于工业环境,家庭空间布局多变、人员活动随机,对机械臂的感知、规划与控制提出了更高要求。本文以7自由度Kinova Gen3机械臂为…...

别再死记硬背了!用Python手把手教你实现数据库闭包自动计算器

用Python实现数据库闭包计算器:从理论到实战的自动化工具 闭包计算是数据库原理中的核心算法,但传统教材往往停留在抽象描述和手工演算阶段。作为曾经被各种箭头符号和递归推导折磨过的开发者,我决定用Python打造一个能自动计算闭包并可视化步…...

LeagueAkari终极教程:英雄联盟玩家的智能辅助工具完全指南

LeagueAkari终极教程:英雄联盟玩家的智能辅助工具完全指南 【免费下载链接】League-Toolkit 兴趣使然的、简单易用的英雄联盟工具集。支持战绩查询、自动秒选等功能。基于 LCU API。 项目地址: https://gitcode.com/gh_mirrors/le/League-Toolkit LeagueAkar…...