最近在做一个图片水印识别的工具,使用的是paddleocr来完成的。
过程中遇到一个比较坑的点,正常流程打出来的包运行时报错, 但是直接执行py脚本又是没问题的。报错内容如下:
python
RuntimeError: `OCR` requires additional dependencies. To install them, run `pip install "paddlex[ocr]==<PADDLEX_VERSION>"` if you're installing `paddlex` from an index, or `pip install -e "/path/to/PaddleX[ocr]"` if you're installing `paddlex` locally
最后在github上找到答案,这里做一下记录:
打包脚本如下:
python
import subprocess
import os
import shutil
import sys
cmd = [
r'C:\Python\python311\python.exe',
'-m', 'PyInstaller',
'main.py', # 主脚本
'--name', r'TestCheckImageWatermark', # 工具名
# '--onefile', # 是否将包打成一个文件, 注释掉就是不打成一个文件
# '--windowed', # 是否开启调试窗口, 注释掉=开启
'--collect-data', 'paddlex',
'--copy-metadata', 'ftfy',
'--copy-metadata', 'imagesize',
'--copy-metadata', 'imagesize',
'--copy-metadata', 'lxml',
'--copy-metadata', 'opencv-contrib-python',
'--copy-metadata', 'openpyxl',
'--copy-metadata', 'premailer',
'--copy-metadata', 'pyclipper',
'--copy-metadata', 'pypdfium2',
'--copy-metadata', 'scikit-learn',
'--copy-metadata', 'shapely',
'--copy-metadata', 'tokenizers',
'--copy-metadata', 'einops',
'--copy-metadata', 'jinja2',
'--copy-metadata', 'regex',
'--copy-metadata', 'tiktoken',
'--add-binary', "C:\Python\python311\Lib\site-packages\paddle\libs;.",
'--hidden-import', "scipy._cyutility",
'--add-data', 'D:\pythonScripts\TestCheckImageWatermark\Configs;Configs',
'-y',
]
subprocess.call(cmd)