当前位置:网站首页>图形化工具打包YOLOv5,生成可执行文件EXE
图形化工具打包YOLOv5,生成可执行文件EXE
2022-07-06 20:07:00 【马少爷】
环境
windows 10 64bit
auto-py-to-exe 2.10.1
前言
Python 项目打包是很多新手经常会问的问题,之前也有文章介绍过如何使用 pyinstaller 来打包生成可执行文件,只不过打包过程是基于命令行的。本文介绍的这个工具,auto-py-to-exe,它是 pyinstaller 的 GUI 版本,对新手更加友好,点点鼠标就可以轻松搞定,那么,快开始吧。
安装
使用 pip 直接安装
pip install auto-py-to-exe
或者拉取源码,解压后进入根目录,执行
python setup.py install
打包示例
本文使用之前的 yolov5-pyqt5 项目进行打包,这里需要注意一点,如果你是使用的 python 虚拟环境,那必须在这个虚拟环境中去安装 auto-py-to-exe
项目代码拉下来之后,修改 main.py,将
self.device = select_device(self.opt.device)
改为
# gpu
self.device = torch.device('cuda:0')
# 如果只有cpu的话,就改成
# self.device = torch.device('cpu')
为什么要这么改?这里主要是 select_device 方法中使用到了 subprocess,而 pyinstaller 在打包 subprocess 方法时会报错,如果去修改 subprocess 部分的代码就有点麻烦了,为简单起见,就不去调用这个方法了,具体的可以参考 https://xugaoxiang.com/2019/12/04/pyqt5-4-pyinstaller/
然后,打开 auto-py-to-exe, 脚本文件选择 yolov5-pyqt5 文件夹下的 main.py,选择单文件,也就是最后就只生成一个可执行文件
在高级选项卡里,点击 --hidden-import 右侧的加号,然后填上 modles.yolo,否则,生成的 exe 运行时会报如下的错误
Traceback (most recent call last):
File "detect_image.py", line 405, in <module>
File "detect_image.py", line 365, in main
File "detect_image.py", line 293, in detection_alertarea
File "detect_image.py", line 79, in __init__
File "models\experimental.py", line 137, in attempt_load
File "torch\serialization.py", line 594, in load
return _load(opened_zipfile, map_location, pickle_module, **pickle_load_args)
File "torch\serialization.py", line 853, in _load
result = unpickler.load()
ModuleNotFoundError: No module named 'models.yolo'
[12976] Failed to execute script detect_image
其它类似 No module named xxx 的错误,也是同样的解决方法
在我们做配置勾选的过程中,当前命令会显示对应的 pyinstaller 指令,如果你没有安装 auto-py-to-exe,只安装了 pyinstaller,那复制这行命令,同样也是可以打包成功的
如果没有报错,项目生成的 exe 文件会默认放在 C:\Users\用户名\output 下
准备好官方的模型文件 yolov5s.pt,放在 weights 文件夹下,然后双击 exe 文件
最后,选择一张测试图片进行测试,功能正常
参考资料
https://github.com/brentvollebregt/auto-py-to-exe
https://xugaoxiang.com/2019/12/04/pyqt5-4-pyinstaller/
https://github.com/xugaoxiang/yolov5-pyqt5
边栏推荐
- Cocos2d-x box2d physical engine compilation settings
- netperf 而网络性能测量
- Cryptography series: detailed explanation of online certificate status protocol OCSP
- Variables, process control and cursors (MySQL)
- 2022.6.28
- input_ delay
- 凌云出海记 | 易点天下&华为云:推动中国电商企业品牌全球化
- A complete tutorial for getting started with redis: AOF persistence
- 首届“量子计算+金融科技应用”研讨会在京成功举办
- Oauth2协议中如何对accessToken进行校验
猜你喜欢
Babbitt | metauniverse daily must read: is IP authorization the way to break the circle of NFT? What are the difficulties? How should holder choose the cooperation platform
Left path cloud recursion + dynamic planning
Make (convert) ICO Icon
The whole process of knowledge map construction
杰理之开启经典蓝牙 HID 手机的显示图标为键盘设置【篇】
leetcode
Appx代码签名指南
Le tube MOS réalise le circuit de commutation automatique de l'alimentation principale et de l'alimentation auxiliaire, et la chute de tension "zéro", courant statique 20ua
2022 spring recruitment begins, and a collection of 10000 word interview questions will help you
mos管實現主副電源自動切換電路,並且“零”壓降,靜態電流20uA
随机推荐
cocos3——8.实现初学者指南
应用程序启动速度的优化
上个厕所的功夫,就把定时任务的三种调度策略说得明明白白
Numpy中排序操作partition,argpartition,sort,argsort
Jerry's question about DAC output power [chapter]
Simple bubble sort
The solution of unable to create servlet file after idea restart
又一百万量子比特!以色列光量子初创公司完成1500万美元融资
【Swift】学习笔记(一)——熟知 基础数据类型,编码风格,元组,主张
Babbitt | metauniverse daily must read: is IP authorization the way to break the circle of NFT? What are the difficulties? How should holder choose the cooperation platform
Redis getting started complete tutorial: replication topology
Jerry's ble exiting Bluetooth mode card machine [chapter]
Cryptography series: detailed explanation of online certificate status protocol OCSP
sshd[12282]: fatal: matching cipher is not supported: aes256- [email protected] [preauth]
c语言字符串排序
密码学系列之:在线证书状态协议OCSP详解
源代码保密的意义和措施
Lost in the lock world of MySQL
杰理之电话本获取【篇】
sshd[12282]: fatal: matching cipher is not supported: [email protected] [preauth]