问题描述:
使用pyinstaller打包paddleocr时报错,我的程序可以正常运行,打包其他程序也没有问题,是在程序中加了paddleocr文字识别后才报错的,报错如下:
pyinstaller打包paddleocr报错FileNotFoundError: [WinError 2] 系统找不到指定的文件
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
关注 不知道你这个问题是否已经解决, 如果还没有解决的话:- 请看👉 :pyinstaller可执行文件__file__失效
- 以下回答由chatgpt基于相关博客总结生成:
问题原因分析:
根据报错信息来看,错误是由于pyinstaller找不到指定的文件而引起的。这个问题很可能是由于pyinstaller在打包过程中没有将paddleocr的相关文件正确地打包进去所致。
解决方案:
为了解决这个问题,我们可以尝试手动将paddleocr的相关文件添加到打包后的可执行文件中。具体的步骤如下:
- 首先,确保你已经安装了最新版本的paddleocr和pyinstaller。可以使用以下命令来安装:
pip install paddleocr pyinstaller
-
然后,创建一个新的目录用于存放打包需要用到的文件,可以命名为
paddleocr_extra
。在这个目录中,你需要添加以下文件和文件夹:-
paddleocr模型文件:在你的Python环境中,paddleocr的模型文件位于
paddleocr.ocr.ocr_server
模块中。你需要将整个模块拷贝到paddleocr_extra
目录中。 -
paddleocr依赖的配置文件:你还需要将
paddleocr.ocr.ocr_server
模块中的configs
文件夹拷贝到paddleocr_extra
目录中。 -
paddleocr依赖的预训练权重文件:你需要将以下预训练权重文件拷贝到
paddleocr_extra
目录中:ch_ppocr_mobile_v2.0_det_infer
ch_ppocr_mobile_v2.0_rec_infer
ch_ppocr_server_v2.0_det_infer
ch_ppocr_server_v2.0_rec_infer
最终,
paddleocr_extra
目录的结构应该类似于下面这样:plaintext paddleocr_extra/ ├── ocr_server/ │ ├── __init__.py │ ├── ocr_server.py │ ├── ... ├── configs/ │ ├── ... ├── ch_ppocr_mobile_v2.0_det_infer ├── ch_ppocr_mobile_v2.0_rec_infer ├── ch_ppocr_server_v2.0_det_infer ├── ch_ppocr_server_v2.0_rec_infer └── ...
-
-
接下来,修改你的Python程序的代码,让它能够正确地加载
paddleocr_extra
目录下的文件。假设你的Python程序的入口文件是main.py
,你需要在main.py
中添加以下代码:
import sys import os extra_dir = 'paddleocr_extra' # paddleocr_extra目录的路径 # 将paddleocr_extra目录添加到sys.path中 sys.path.append(os.path.abspath(extra_dir)) # 将paddleocr_extra目录下的依赖文件路径添加到环境变量中 os.environ['PYTHONPATH'] = os.path.abspath(extra_dir) import paddleocr ... # 此处为你的程序代码的其余部分
请确保以上代码位于你程序的入口文件的顶部。
- 最后,使用pyinstaller打包你的程序。在命令行中切换到你的项目目录下,执行以下命令:
pyinstaller main.py
这会生成一个可执行文件,位于
dist
目录下。希望以上步骤能够解决你的问题。如果还有其他疑问,请随时追问。
如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^解决评论 打赏 举报无用 1
悬赏问题
- ¥15 目详情-五一模拟赛详情页
- ¥15 有了解d3和topogram.js库的吗?有偿请教
- ¥100 任意维数的K均值聚类
- ¥15 stamps做sbas-insar,时序沉降图怎么画
- ¥15 买了个传感器,根据商家发的代码和步骤使用但是代码报错了不会改,有没有人可以看看
- ¥15 关于#Java#的问题,如何解决?
- ¥15 加热介质是液体,换热器壳侧导热系数和总的导热系数怎么算
- ¥100 嵌入式系统基于PIC16F882和热敏电阻的数字温度计
- ¥15 cmd cl 0x000007b
- ¥20 BAPI_PR_CHANGE how to add account assignment information for service line