赞
踩
前提:已经在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文件夹内,或者你改为模型所在的绝对路径】):
参考①:
参考②:
赞
踩
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。