paddleOCR项目打包分发后运行报错“tqdm\std.py“, line 452, in fp_write File

参考资料:

Pyinstaller 打包 PaddleOcr + PyQt5 项目的打包过程、常见问题及解决方法_paddleocr打包太难了-CSDN博客

问题描述:

我使用如下命令打包我的项目pyinstaller -D --name=ocrapp --windowed --collect-all paddleocr --collect-all pyclipper --collect-all imghdr --collect-all skimage --collect-all imgaug --collect-all scipy.io --collect-all lmdb --collect-all paddle main.py,然后再dist下生成了exe文件,在本机上打开后正常运行,但是当我发送给别人后,出现了以下报错:

Traceback (most recent call last): File "table_ocr.py", line 1458, in <module> File "table_ocr.py", line 36, in init File "paddleocr\paddleocr.py", line 675, in init maybe_download(params.det_model_dir, det_url) File "paddleocr\ppocr\utils\network.py", line 116, in maybe_download download_with_progressbar(url, tmp_path) File "paddleocr\ppocr\utils\network.py", line 43, in download_with_progressbar _download(url, save_path) File "paddleocr\ppocr\utils\network.py", line 93, in _download with tqdm(total=(int(total_size) + 1023) // 1024) as pbar: File "tqdm\std.py", line 1098, in init File "tqdm\std.py", line 1347, in refresh File "tqdm\std.py", line 1495, in display File "tqdm\std.py", line 459, in print_status File "tqdm\std.py", line 452, in fp_write File "tqdm\utils.py", line 140, in getattr AttributeError: 'NoneType' object has no attribute 'write' 

根本原因:

1. paddleOCR会根据固定路径去找模型

2. 需要修改 paddleocr.py的搜索路径代码 

解决方案:

找到虚拟环境中的 paddleocr.py(通常路为 .../Lib/sitepackages/paddleocr/paddleocr.py),修改以下代码:

# 修改前(默认路径指向用户目录)
BASE_DIR = os.path.expanduser("~/.paddleocr/")

# 修改后(指向当前项目目录)
BASE_DIR = os.path.join(os.path.dirname(os.path.abspath(__file__)), ".paddleocr")

然后打包项目

pyinstaller -D --name=ocrapp --windowed --collect-all paddleocr --collect-all pyclipper --collect-all imghdr --collect-all skimage --collect-all imgaug --collect-all scipy.io --collect-all lmdb --collect-all paddle main.py

 生成了dist文件夹

在 C:\Users\nihao.dong\下找到模型位置  .paddleocr  

然后粘贴复制到dist文件夹下

完毕双击exe,程序会基于当前目录查询模型。 

具体原因:

PaddleOCR 模型下载与配置 - 豆包

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

董厂长

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值