创建干净虚拟环境对YOLOV8进行打包

news2024/12/28 23:35:41

背景

基于Yolov8写了一个视频检测小demo,考虑后续要到项目上使用,所以研究了一下打包流程。使用的工具是Pyinstaller,在原有的环境下面打包发现,大小有6个多G。所以想再弄一个干净的环境,只安装需要的模块,看包的大小能不能缩小一些。

步骤

创建虚拟环境

1 打开Anaconda Prompt(在开始菜单中搜索)

2 Anaconda Prompt的命令行窗口输入创建虚拟环境语句(根据自己实际情况),例如:

conda create -n Yolov8_installer python=3.12 

安装过程中,键入一次 y

3 激活环境

conda activate Yolov8_install

4 安装Pytorch

Start Locally | PyTorch,选择与自己环境匹配的版本,然后拷贝安装命令

出现如下图,提示安装成功

5 安装Yolov8

直接下载源码,或者是执行

pip install ultralytics

6 Pycharm中配置环境

打开Pycharm,打开需要打包的文件所在文件夹,点击Settings => Python Interpreter => Add Interpreter,参考下图,点击确定即可。

进行打包

可直接在Pycharm的终端,直接输入,例如

pyinstaller -w .\DemoWindow.py   #DemoWindow.py是你要打包的文件

输入命令之后,等待即可,因为依赖环境比较多,时间稍微有点长,大概几分钟,最后出现这样子就打包成功了。

测试打包

打包生成的目录在脚本同级目录下的dist文件夹中,我的是dist/DemoWindow/,这个文件夹下有一个DemoWindow.exe和一个文件夹_internal。

直接双击DemoWindow.exe,看能不能正常打开,哈哈,果然不让你一次成功,提示找不到文件

然后,手动拷贝了Yolov8源码ultralytics到_internal中,就ok了。

另外,还需要在exe同级目录下,拷贝程序中使用到的资源,要不然exe找不到,我试了放到_internal里面不行。

结论

干净的虚拟环境打的包比原来小0.7G。

附录

主要参考文章,感谢!

https://blog.csdn.net/JHZ056/article/details/141170043

https://blog.csdn.net/shangyanaf/article/details/139029717

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2054704.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

前端基础4

本节内容: 1.CSS的弹性布局,也称Flex布局 2.Vue2的生命周期 一、Flex布局 弹性布局是前端页面布局最常用的方式之一,通常使用四个属性。 1.创建盒子 先创建一个盒子并为其添加一些样式可以更直观的体验弹性布局,代码如下&#…

xcode如何编译python

1、找到Python位置: 终端输入:which python 获取python的安装位置,一般为/usr/bin/python。获取到这个路径方便使用它来搭建python的编译环境。 2、在Xcode中创建python程序 打开Xcode,新建工程(ShiftCommandN&…

前端基础知识(一些基本标签的用法)

前端:html,css,javascript html:超文本结构化标记语言 使用角度 1、供显示的元素 2、供收集信息的元素 css层叠联样式单 选择器(给谁做样式) 盒子模型(了解html元素内部结构) 布局(把元素进行摆布&a…

C语言 | Leetcode C语言题解之第352题将数据流变为多个不想交区间

题目: 题解: typedef struct SummaryRanges{int left,right;struct SummaryRanges *pre,*next; } SummaryRanges;/** Initialize your data structure here. */SummaryRanges* summaryRangesCreate() {SummaryRanges *head malloc(sizeof(SummaryRange…

nlohmann json库的使用Demo

目录 1 简介 2 构建 JSON 对象 2.1 集合 2.2 字典 2.3 组合 3 解析 JSON 对象 4 演示Demo 4.1 开发环境 4.2 功能介绍 4.3 下载地址 1 简介 nlohmann/json 是一个方便易用的 C JSON 库,可以实现将 JSON 数据与 C 对象相互转换的功能,支持常见的…

Linux驱动开发—设备模型框架 kset和 kobject 详解

文章目录 什么是设备模型?设备模型的主要组成部分设备模型的关键功能设备模型的实现结构设备模型的重要性 kset和 kobject介绍1. kobject2. kset3. kobject 和 kset 的关系4. 应用场景 kobject中parent概念1. parent 字段的作用2. parent 字段的使用示例3. sysfs 中…

算法的学习笔记—对称的二叉树(牛客JZ28)

😀前言 在算法的世界中,二叉树是一个极其重要的数据结构。它不仅广泛应用于各种算法的设计中,也是面试中常见的考察点之一。今天,我们将深入探讨一个经典的二叉树问题——对称的二叉树,并且会展示如何通过Java代码来解…

stripe Element 如何使用

这里要准备好几个东西: 一个支付成功过后的回调 还有一个下单的接口 一旦进入这个下单界面,就要去调下单的接口的,用 post, 这个 接口你自己写,可以写在后端中,也可以放到 nextjs 的 api 中。 首先说的是这个下单…

去中心化的新时代:Web3技术的全球影响

随着技术的不断演进,Web3正引领互联网的去中心化新时代。相较于传统的Web1和Web2,Web3通过去中心化、区块链和智能合约等技术,正在重塑网络的运作方式。这一变革不仅提升了网络的安全性和透明度,也对全球经济、社会和文化产生了深…

品牌出海新策略:携手TikTok达人,合作孵化IP实现双赢

在当今数字化时代,TikTok达人的IP孵化作为一种创新的合作模式,正逐渐成为品牌出海的新兴策略。通过与有潜力的TikTok达人合作,共同孵化新的IP,品牌不仅能够突破传统营销的局限,还能实现与达人共同成长的双赢局面。本文…

物流抓取机器人整体设计方案

一、功能简介 1、运行环境:巡线行驶(7路数字循迹,麦克纳姆轮车底盘) 2、目标识别:颜色识别(Maix-II Dock 视觉模块) 3、目标定位:视觉测距(Maix-II Dock 视觉模块&#x…

海外直播对网络的要求有哪些?

在全球化的大潮中,海外直播已成为越来越多企业、个人和机构展示自身、拓展市场、与全球用户互动的重要渠道。然而,在进行海外直播时,网络环境的搭建往往成为制约其成功与否的关键因素。那么,究竟什么样的网络环境才能满足海外直播…

Python使用Selenium进行Web自动化测试详解

目录 引言 一、Selenium简介 Selenium的核心组件 二、环境搭建 1. 安装Python 2. 安装Selenium库 3. 下载并配置浏览器驱动 三、基础用法 1. 启动浏览器 2. 定位页面元素 3. 元素操作 4. 等待元素加载 1. 测试目的 2. 测试步骤与代码实现 3. 注意事项 结论 引言…

学习方法[2]:如何有效地检索及选择学习资料?(致在自学之路仍在坚持的人)

有效地检索及选择学习资料 前言一、如何进行有效检索资料?(以bing为例)1.1 基础搜索1.2 高级搜索1.2.1 高级搜索关键字1.2.2 高级搜索选项 二、如何选择学习资料?(以编程为例)2.1 源代码2.2 官方文档2.3 英…

Quartz - 定时任务框架集成

参考了若依框架,将quartz定时任务框架集成到自己的项目当中。 目录 一、Quartz概述二、库表创建1.Quartz关键表(11张)表SQL 2.自定义业务表(2张)表SQL 三、代码示例1.依赖引入2.类文件1)定时任务配置类2&am…

优优嗨聚集团:餐饮合作新未来引领美食产业新风尚

在快速变化的21世纪,餐饮行业作为民生消费的重要组成部分,正经历着前所未有的变革与挑战。随着消费者需求的多元化、个性化以及科技的不断进步,餐饮合作的新模式正悄然兴起,为行业带来了前所未有的发展机遇与活力。本文将探讨餐饮…

如何复现Github上的项目以及conda的常用操作指令

在GitHub上关于深度学习的项目代码通常包含多种类型的文件,每种文件都有其特定的作用。以下是一些常见的文件及其作用的概述: 一个常用的项目结构如下: --project_name/ :项目名----data/:数据集--------__init__.py…

vue+elementui 主题配色修改-打造个性化配色系统

上一期中利用global.css来覆盖elementui原有的配色,修改了按钮和消息框。这一期继续尝试修改其他的控件。 1 修改info 类型按钮 上次修改了primary按钮,这次修改一下info按钮,在global.css中添加 .el-button--info {background-color: #d9d…

deepspeed的并行模式介绍笔记

1.整体框架 2.并行模式 1.数据并行DDP 数据切分以后,分开单张卡训练得到参数,然后综合在单卡计算。 要点:前向计算和反向计算两步骤走并汇总。 1.前向计算 需要留一块主卡一定空间用于综合。 2.反向传播 利用前向传播的汇总参数得到各个…

深度学习基础—超参数调试

1.超参数调试顺序 在训练深度网络最难的事情之一是超参数的选择,如何选择合适的超参数取值?下面我将谈谈,如下是我所理解的超参数调试顺序: 重要性排序 超参数 Top1梯队 学习率a Top2梯队 min-batch大小,隐层神经…