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

pyinstaller打包paddleocr发生错误解决

python环境是3.9,github paddleocr v2.10.0。

一个非常简单的案例如下,打包时发生错误。


import requests
from paddleocr import PaddleOCR
if __name__ == "__main__":paddleocr_ocr = PaddleOCR(use_angle_cls=True, lang='ch',det_model_dir='models/ch_PP-OCRv3_det_infer',rec_model_dir='models/ch_PP-OCRv3_rec_infer',cls_model_dir='models/ch_ppocr_mobile_v2.0_cls_infer')def paddleocr_ocr_image():try:params = {"compression_quality": "1.0"}with requests.get("get_jpg_pic", params=params, stream=True, timeout=3) as image_response:image_response.raise_for_status()if not image_response.headers.get("Content-Type", "").startswith("image/jpeg"):raise ValueError(f"无效的响应类型:{image_response.headers.get('Content-Type')}")image_data = image_response.contentresult = paddleocr_ocr.ocr(image_data, cls=True)formatted_result = []for line in result[0]:points = line[0]text, confidence = line[1]x_coords = [point[0] for point in points]y_coords = [point[1] for point in points]formatted_result.append({"text": text,"center_x": int(sum(x_coords) / len(x_coords)),"center_y": int(sum(y_coords) / len(y_coords)),"width": int(max(x_coords) - min(x_coords)),"height": int(max(y_coords) - min(y_coords)),"confidence": confidence})return formatted_resultexcept requests.RequestException as e:print(f"图片失败:{str(e)}")return False

错误1:找不到  no module named "distutils.core"

错误2:找不到 Cython 

错误3:找不到 paddleocr/tools

错误4:找不到 no module named "ppocr"

错误5:找不到 mklml.dll

解决方法打包配置:,注意替换启动入口文件名、引入的路径名

# -*- mode: python ; coding: utf-8 -*-from PyInstaller.utils.hooks import collect_allmklml_path = r'C:\\Users\\Administrator\\Desktop\\iospythonProject\\venv\\Lib\\site-packages\\paddle\\libs\\mklml.dll'
paddleocr_datas, paddleocr_binaries, paddleocr_hiddenimports = collect_all('paddleocr')a = Analysis(['noUsb.py'],pathex=[],binaries=[],datas=[('C:\\Users\\Administrator\\Desktop\\iospythonProject\\venv\\Lib\\site-packages\\Cython\\Utility', 'Cython/Utility'),('C:\\Users\\Administrator\\Desktop\\iospythonProject\\venv\\Lib\\site-packages\\paddleocr\\tools', 'paddleocr/tools')]+ paddleocr_datas,hiddenimports=['distutils.core','ppocr']+ paddleocr_hiddenimports,hookspath=[],hooksconfig={},runtime_hooks=[],excludes=[],noarchive=False,optimize=0,
)a.binaries.extend(paddleocr_binaries)
a.binaries.append(('mklml.dll', mklml_path, 'BINARY'))
pyz = PYZ(a.pure)exe = EXE(pyz,a.scripts,a.binaries,a.datas,[],name='noUsb',debug=False,bootloader_ignore_signals=False,strip=False,upx=True,upx_exclude=[],runtime_tmpdir=None,console=False,disable_windowed_traceback=False,argv_emulation=False,target_arch=None,codesign_identity=None,entitlements_file=None,
)

相关文章:

  • 【5】GD32 基础通信外设:USART、I2C、SPI
  • 正则表达式三剑客之——awk命令
  • OCR(Optical Character Recognition),光学字符识别
  • 使用 Python 项目管理工具 uv 快速创建 MCP 服务(Cherry Studio、Trae 添加 MCP 服务)
  • 通道降维方式
  • 一款好的私有云产品推荐——优刻得私有云(UCloudStack Pro)产品白皮书
  • 单机无穷大系统暂态稳定性仿真Matlab模型
  • 数据库-子查询、关联查询 和 TCL 语言
  • 智慧医疗领域TMI期刊2025年3月研究热点解析
  • 嵌入式:Linux系统应用程序(APP)启动参数及其规则详解
  • 【网络入侵检测】基于源码分析Suricata的PCAP模式
  • 计算器(WEB)
  • 流动式起重机Q2证考试有哪些科目?
  • C++与Python编写二进制转十进制
  • 机器人行业研究系列报告
  • 方案精读:77页2024 集团企业IT技术架构规划方案【附全文阅读】
  • IntelliJ IDEA 中配置 Spring MVC 环境的详细步骤
  • Video-LLaVA
  • DeepSeek系列(8):个人效能提升案例
  • 《使用 Cesium 加载静态热力图显示的实现步骤》
  • 江苏、安徽跨省联动共治“样板间”:进一扇门可办两省事
  • 商务部就海外社交平台上发布从所谓中国“代工厂”低价购买国际知名品牌事答问
  • 外交部:美国是国际军控与防扩散体系的最大破坏者
  • 福耀科技大学发布招生章程:专业培养语种为英语,综合改革省份选考需含物化
  • 2024年上海发生科技融资997起,位于全国第一
  • 央媒关注脑瘫女骑手:7年跑出7.3万多份单,努力撑起生活