当前位置:   article > 正文

YOLO5-V7.0的python代码转成exe,方便离线部署_yolo打包成exe

yolo打包成exe

思路:用pyinstaller打包,但有一些坑,踩完坑后成功运行,写个踩坑指南分享下。

前提:已经在conda 环境下安装完可以运行的yolo5代码,例如你的虚拟python环境叫yolo5,主代码是XXX.py(这个python想转成.exe,例如推理代码)。

①首先进入激活环境

conda activate yolo5

pip install pyinstaller

②然后就可以使用pyinstaller 打包文件,-F是打包成一个总的XXX.exe包,使用-D为打包成文件夹XXX【包含一堆dll,XXX.exe】。这里使用-D,因为后面运行exe一般都会缺少dll,使用-D打包的话后续方便查看少哪些dll。具体操作:

cd到python路径下,

pyinstaller -D XXX.py

③踩坑,除错

打包完毕后进入命令行,运行该exe,会报错:缺少了caffe2_nvrtc.dll or one of its dependencies,检查XXX文件夹发现caffe2_nvrtc.dll 是存在的,因此是其他依赖dll缺失了。

那么使用Depends检查caffe2_nvrtc.dll,发现是这2个依赖dll缺失【kernel32.dll 和 nvrtc64_102_0.dll 】,原因是pyinstaller 少打包了kernel32.dll 和 nvrtc64_102_0.dll ,那么我们只要找到这两个dll,复制到XXX文件夹下面即可。

在虚拟环境yolo5的本地env文件夹下面【一般是C:\Users\用户名\.conda\envs\yolo5下】,可以找到nvrtc64_102_0.dll,复制。在C盘全局搜索kernel32.dll,可以找到,复制。

其他坑:根据参考②的思考,建议把XXX.python代码中的device 直接设置为 torch.device('cuda:0'),注释掉select_device函数,否则可能报其他错误,这个读者自行判断。

④成功运行exe文件来做yolo5的推理(如图,在cmd命令行中运行XXX.exe,后面带了个模型参数.pt【事先把该pt放到XXX文件夹内,或者你改为模型所在的绝对路径】):

参考①:

https://medium.com/@exexzxzpo/%E5%98%97%E8%A9%A6%E4%BD%BF%E7%94%A8pyinstaller%E6%89%93%E5%8C%85yolov5%E4%B8%ADdetect-py%E6%96%87%E4%BB%B6-%E5%90%ABpytorch%E6%A1%86%E6%9E%B6-%E6%89%80%E9%81%87%E5%88%B0%E7%9A%84%E5%95%8F%E9%A1%8C-543f5481b304

参考②:

【YOLOv5】YOLOv5打包成exe应用程序详细步骤_yolov5打包exe_嗷大喵~的博客-CSDN博客

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/木道寻08/article/detail/900554
推荐阅读
相关标签
  

闽ICP备14008679号