使用 pyinstall 打包 paddleocr

目录

零、运行环境介绍

一、安装pyinstaller

二、编辑spec文件

三、编辑入口python文件

七、打包后将模型文件、图片移动至文件夹内

六、打包后的文件内容截图

四、借鉴的文章(对其内容进行修正)

  • PaddleOCR打包exe
  • paddleocr打包exe错误汇总

五、总结


零、运行环境介绍

  • win10、64位系统、
  • python 3.8.0
    在这里插入图片描述

一、首先使用pip安装pyinstaller pip install pyinstaller

  • 注意: 安装后使用 pyinstaller 对paddleocr进行打包。打包后的文件能够运行的前提:本机可以通过 python 命令执行入口文件(入口文件后文有粘贴) 打包后的文件经测试可以在未安装python环境的系统进行使用. 很棒.^------------^!

二、使用的spec文件内容如下

  • 注意:其中需要修改的部分是pathex中文件所在路径文件内容摘抄自另一篇博文(❄点击可查看❄)

    # -*- mode: python ; coding: utf-8 -*-
    block_cipher = None
    a = Analysis(['gui.py'],
         pathex=['E:/prgrames/Python/Python38/Lib/site-packages/paddleocr'
    	 , 'E:/prgrames/Python/Python38/Lib/site-packages/paddle/libs'],
         binaries=[('E:/prgrames/Python/Python38/Lib/site-packages/paddle/libs', '.')],
         datas=[],
         hiddenimports=[],
         hookspath=['.'],
         runtime_hooks=[],
         excludes=['matplotlib'],
         win_no_prefer_redirects=False,
         win_private_assemblies=False,
         cipher=block_cipher,
         noarchive=False)
    pyz = PYZ(a.pure, a.zipped_data,
         cipher=block_cipher)
    exe = EXE(pyz,
         a.scripts,
         [],
         exclude_binaries=True,
         name='main',
         debug=False,
         bootloader_ignore_signals=False,
         strip=False,
         upx=True,
         console=True)
    coll = COLLECT(exe,
         a.binaries,
         a.zipfiles,
         a.datas,
         strip=False,
         upx=True,
         upx_exclude=[],
         name='main')
    

三. 入口python文件paddleocr.py

  • 注意:img_path与 det_model_dir, rec_model_dir, cls_model_dir是生成的dist文件中模型和图片的相对路径, 用于exe文件查找模型和图片使用。(建议使用相对路径, 方便文件的迁移)

  • 注意:在使用博文提供的此脚本后注释部分内容, 避免运行报错 注释内容:1. orc_result开头内容和 2. text='\n'开头内容

    from paddleocr import PaddleOCR
    模型路径下必须含有model和params文件
    ocr = PaddleOCR(det_model_dir = './inference/ch_PP-OCRv3_det_infer/', # 检测模型所在文件夹
                    rec_model_dir = './inference/ch_PP-OCRv3_rec_infer/', # 识别模型所在文件夹。
                    cls_model_dir = './inference/ch_ppocr_mobile_v2.0_cls_infer/', # 分类模型所在文件夹。
                    #rec_char_dict_path = './dict/japan_dict.txt', # 识别模型字典路径。
                    #lang = 'en',
                    use_angle_cls = True, # 是否加载分类模型
                    use_gpu = False) # 是否使用gpu
    img_path = './20240118154748.png'
    result = ocr.ocr(img_path, cls = True)
    #ocr_result=[line[1][0] for line in result] # 组合成列表形式
    #text='\n'.join(ocr_result) #  回车符连接列表中的每个元素
    print(result)
    
    

七、打包后将模型文件、图片移动至文件夹内

  • paddleocr gitee地址 下载推理模型并解压存储在对应目录下
    使用 pyinstall 打包 paddleocr_第1张图片
  • 如:识别模型目录下文件
    使用 pyinstall 打包 paddleocr_第2张图片

六、打包后的文件内容截图

使用 pyinstall 打包 paddleocr_第3张图片

八、cmd执行main

  • 注意:这里标红处为我希望得到的内容. 但仍需根据业务进行精简修改入口脚本等内容
    使用 pyinstall 打包 paddleocr_第4张图片

四、借鉴的文章(对其内容进行修正)

  • PaddleOCR打包exe测试后可以正常执行打包流程, 但安装完成后根据他的提示执行main.exe会报错

    使用 pyinstall 打包 paddleocr_第5张图片

    1. 将下图中 paddleocr安装目录下的tools文件夹 复制到 错误提示的路径下
    2. python安装目录下 Python38\Lib\site-packages\paddleocr\tools
    

    使用 pyinstall 打包 paddleocr_第6张图片

  • paddleocr打包exe错误汇总解决了main.exe执行过程 extract_textpoint_slow module找不到的问题

    在这里插入图片描述

    1.	根据他的描述(他的提示移动 ppocr 至 dist下)发现不能解决问题。
    2.	通过调整测试,将文件夹(ppocr)复制到 dist/main/_internal 下就可以了。
    3.	ppocr文件夹所在路径(python安装目录下)  Python38\Lib\site-packages\paddleocr
    4.	除此之外还有文件找不到的情况。尝试将对应文件夹粘贴到错误提示的路径
    

五、总结

  • 打包前对入口python脚本进行调试。确保本地测试通过。
  • 打包前paddleocr可运行使用 paddleocr gitee readme中有安装文档, 非常详细. https://gitee.com/paddlepaddle/PaddleOCR/blob/release/2.7/doc/doc_ch/quickstart.md
  • 打包报错莫急,跟着报错提示渐行处理。并在必要时借鉴网络资料(我还查询过抖音的豆包AI,感觉还不错)
  • spec文件看似内容较多, 实则用的较少。有幸可以搜索到此篇文章

你可能感兴趣的:(python,ai,gitee,运维,windows,ocr,paddle)