下载源代码与创建虚环境

参考文献[0],克隆 repo,并要求在 Python>=3.8.0 环境中安装 requirements.txt ,且要求 PyTorch>=1.8 。

# 创建虚环境
mkvirtualenv --python=python3.8 yolov5_p38

# 进入虚环境
workon yolov5_p38

# 下载源码,并安装yolov5的包
git clone https://github.com/ultralytics/yolov5  # clone
cd yolov5
pip install -r requirements.txt  # install

打包命令

打包的命令

# my_inference.py为我编写的使用yolov5推理的脚本 
pyinstaller -c -D my_inference.py --hidden-import hubconf

打包遇到的问题汇总

问题1:FileNotFoundError: [Errno 2] No such file or directory: './hubconf.py'
解决方法:这个包,是动态加载的一个包。在打包命令中,加上--hidden-import hubconf。(没有验证过去掉它是否可行),并且在打包好的dist\your_project_name\xxx.exe的所在目录,把hubconf.py复制到这个exe所在的目录下。

问题2:模型权重文件,或者配置文件(ultralytics\cfg\default.yaml)找不到。 解决方法:
1 复制权重文件到exe所在目录。
2 根据报错提示的配置文件路径,把default.yaml复制放到相应的路径下。(缺少相应父级文件夹的,手工创建)。
例子:这里提示 dist\your_project_name\ultralytics\cfg\default.yaml找不到,那么在dist\your_project_name\目录下,依次创建ultralytics目录,并在ultralytics目录下创建cfg目录,并在cfg目录下,复制default.yaml到cfg目录下。这个default.yaml即https://github.com/ultralytics/ultralytics/blob/main/ultralytics/cfg/default.yaml 文件。也是yolov5_p38\Lib\site-packages\ultralytics\cfg\default.yaml这个文件。(在本地电脑上,可以使用everything搜索一下)。

问题3:FileNotFoundError: [WinError 3] 系统找不到指定的路径。: 'D:\xxx\dist\xxxx\utils\general.pyc'
解决方法:参考文献[1],把yolov5下utils文件夹复制到你打包的文件夹里面,即dist/detect/下,然后把general.py复杂一份,改名为general.pyc就行。我也不知道这是为什么,但他就是能跑了。

问题4:cmd中没有输出日志。
解决方法:参考文献[2],修改打包的命令-w ==> -c。

-c, --console, --nowindowed提供程序视窗,程序有输入输出的界面

参考文献

[0] https://github.com/ultralytics/yolov5/blob/master/README.zh-CN.md
[1] https://blog.csdn.net/weixin_49824280/article/details/130227336 (Win10 yolov5环境搭建、打包及问题解决_yolov5打包_zbliquan的博客-CSDN博客)
[2] https://blog.csdn.net/ccoooaa112233/article/details/127021183 (运行Pyinstaller打包的python exe没有输出的解决办法_pyinstaller 生成的exe不显示执行日志_ccoooaa112233的博客-CSDN博客)


楚知行
18 声望4 粉丝