[Python进阶] Pyinstaller打包模式

news2024/12/24 10:08:59

5.3 Pyinstaller打包模式

Pyinstaller将Python源码打包成程序有2种打包的方式:
单文件夹模式:指打包后将所有的程序文件放在一个文件夹内。
单文件模式:打包后只有一个可执行文件,全部的依赖文件都已经被打包进去了。

5.3.1 单文件夹模式

这里我们先创建一个需要打包的py源文件,取名为打包.py,内容如下:

print(‘hello world!’)
input(‘please input…’)

代码很简单,第一行用来输出hello world,第二行用来暂停程序,这样我们在运行时不至于立刻运行完毕,导致看不到效果。
接下来进行单文件夹模式的打包,方法如下:
1,打开CMD,通过cd命令进入到py源码文件所在的文件夹。
2,输入命令:Pyinstaller 打包.py
3,紧接着CMD窗口会显示打包的过程,这个过程时长和Py源码有关,一般几分钟内就会完成。在最后如果能看到类似"Building…completed successfully"的语句,则表明打包成功完成。
在这里插入图片描述

4,接着我们发现项目文件夹下多出了2个文件夹,名称分别是build,dist。1个文件:打包.spec,而我们需要的可执行文件就在dist文件夹中。点击进入dist文件夹后,会发现有一个打包文件夹 ,里面有程序可执行文件以及相关依赖。
5、双击运行该文件夹内的打包.exe,以测试效果:
在这里插入图片描述

注:
1、打包成功跟运行成功是两个概念。前者指成功生成可执行文件,而后者指可执行文件运行没有问题,打包成功不代表程序运行没问题。
2、单文件夹模式由于会将所有的依赖文件全都放在文件夹里,这种模式比较稳定,在打包时或程序运行时不容易出现各种问题。是比较推荐的一种模式。

5.3.2 单文件模式

在单文件夹模式时,只需要在输入打包命令时,加上-F参数即可改成单文件模式打包程序。如下:

Pyinstaller -F 打包.py

打包成功后同样会产生之前的2个文件夹和1个文件。而这次我们需要双击运行的程序文件变成了单文件:打包.exe。同样在dist文件夹中。我们只需要双击运行该文件即可执行程序。
注:
1、打包双击这个可执行文件运行程序时会先将依赖文件解压到临时文件夹中,然后再执行程序。这种方式对不怎么懂编程或者电脑操作不是很熟练的用户来讲也比较友好。
2、该打包模式通常占用的空间更小,利于传输。
3、虽然单文件模式打包后的结果比较友好,但通常遇到的问题和麻烦比文件夹模式打更多。所以并不推荐。

5.3.3 build、dist和spec简介

这3个文件(夹)是打包成功后自动生成的。下面分别介绍下:
build文件夹:生成一些日志文件以及工作文件
dist文件夹:已经打包好的文件,主要是程序文件及依赖项。
spec文件:这个文件其实就是个py源代码文件,写入的都是一些配置信息,包括打包时参数以及要打包的相关文件路径,它的作用就是告诉Pyinstaller如何来进行打包处理。
在打包完成并运行成功后,其实只要保存dist文件夹里面的内容即可。其它build文件夹以及spec文件是可以删除的。

5.3.4 打包过程

1、在脚本目录生成 spec 文件;
2、创建一个 build 目录;
3、写入一些日志文件和中间流程文件到 build 目录;
4、创建 dist 目录;
5、生成可执行文件或文件夹到 dist 目录;

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

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

相关文章

Linux 信号相关

int kill(pid_t pid, int sig); -功能:给某个进程pid 发送某个信号 参数sig可以使用宏值或者和它对应的编号 参数pid: >0 ;将信号发给指定的进程 0;将信号发送给当前的进程组 -1;发送给每一个有权限接受这个信号的…

Postman应用——Variable变量设置(Global、Environment和Collection)

文章目录 Global变量设置Environment变量设置Collection变量设置Global、Environment环境变量预览 Global、Environment和Collection变量使用,点击查看。 Global变量设置 全局变量设置,作用域是所有Collection、Folder和Request,全局变量只有…

混淆矩阵和数据不平衡 (1/3)

一、说明 如果数据集数据不平恒,如何评估分类器的效果?如果分类器不好,如何改进分类器?本篇将讲述不平衡数据下,混淆矩阵的应用。 二、混淆矩阵的基本概念 2.1 连续数据分布 LET将数据视为连续的,分类的或有…

阿里云服务器价格更新,轻量应用服务器108元,云服务器182.04元起

阿里云服务器价格更新了,不同时期阿里云服务器的租用价格不同,目前阿里云在官网活动中新增加了一款经济型e实例规格的云服务器,现在购买阿里云轻量应用服务器最低为108元,购买云服务器最低为182.04元,换算到每天只要0.…

零基础学前端(四)3. 重点讲解 CSS:实战补全百度网站首页

1. 该篇适用于从零基础学习前端的小白 2. 初学者不懂代码得含义也要坚持模仿逐行敲代码,以身体感悟带动头脑去理解新知识 3. 初学者切忌,不要眼花缭乱,不要四处找其它文档,要坚定一个教授者的方式,将其学通透&#xff…

前端学习路线,带你入门程序猿

相信很多想学前端的小伙伴是非常迷茫的 前端知识体系很多,不知从何学起 而且框架也有不少,不知道该如何下手 很多学习前端的小伙伴都没有一个很好的学习路线图,简直可以说是看见啥学啥 而且自己在学习的时候非常吃力,感觉总是学不…

SQLite 学习笔记1 - 简介、下载、安装

SQLite 简介 SQLite是一款非常轻量级的关系数据库系统,支持多数SQL92标准。SQLite 是世界上使用最广泛的数据库引擎。SQLite 内置于所有手机和大多数计算机中,并捆绑在人们每天使用的无数其他应用程序中。 SQLite 是一个由C语音开发的嵌入式库&#xff…

DataGrip汉化

一、关闭DataGrip,下载新的jar包 链接:https://pan.baidu.com/s/1gTHpyMuIME_n8qC9KYbOzA 提取码:ute3 二、把下载的jar包放在lib文件里,把原来自带的jar替换掉 三、打开datagrip

nginx代理故障总结

一、故障现象 今天公司的某个系统文件下载功能失败,报错network error,其他功能正常。 二、故障定位 首先我们检查了公司的网络情况,包括网络路由、防火墙策略、终端安全产品等,均未发现异常。 尝试访问http://X.X.X.X:7002端口&…

uniapp——实现二维码生成+保存二维码图片——基础积累

最近在做二维码推广功能,自从2020年下半年到今天,大概有三年没有用过uniapp了,而且我之前用uniapp开发的程序还比较少,因此很多功能都浪费了很多时间去查资料,现在把功能记录一下。 这里写目录标题 效果图1.根据接口返…

元数据管理平台Datahub0.10.5版本安装部署与导入各种元数据手册

官网文档连接 DataHub Quickstart Guide | DataHub (datahubproject.io) 本文所选择的Python的版本为3.8.16,Docker版本为20.10.0,Datahub为0.10.5版本 python必须为3.7以上的版本。0.10.5不支持以下的版本 如果要使用web上的 添加数据源 直接调用的…

开源分布式存储系统(HDFS、Ceph)架构分析

文章目录 中间控制节点架构-HDFSNameNode节点分析DataNode节点分析SecondNameNode节点分析Client分析 完全无中心架构-CephCeph Monitor分析Ceph OSD分析Ceph Manager分析Ceph Clients分析 小结HDFS优点缺点 Ceph优点缺点 参考 中间控制节点架构-HDFS 以HDFS( Hado…

五、点击切换、滚动切换、键盘切换

简介 通过事件改变当前展示的信息组件&#xff0c;交互的事件有点击上下切换、鼠标轮动上下切换、键盘上下键切换。欢迎访问个人的简历网站预览效果 本章涉及修改与新增的文件&#xff1a;App.vue、public 一、鼠标点击上下箭头切换 <template><div class"a…

Learn Prompt-Prompt 高级技巧:Agent的颠覆性影响

OpenAI联合创始人Andrej Karpathy在一个开发者活动上发表讲话&#xff0c;谈及了他和OpenAI对AI Agents的看法。他将过去开发 AI Agents 的困难与现在依靠新技术工具而带来的新机会进行了对比。Andrej Karpathy 认为普通人、创业者和极客在构建 AI Agents 方面相比 OpenAI 这样…

还有一天活动就开始我定好闹钟准时上线

&#xff08;整理衣服&#xff09;&#xff08;大步流星走上台&#xff09;&#xff08;拿起麦克风&#xff09;&#xff08;激情发言&#xff09;请大家&#xff08;热泪盈眶&#xff09;&#xff08;哽咽&#xff09;关注&#xff08;流泪&#xff09;&#xff08;擦眼泪&…

蓝桥杯打卡Day11

文章目录 最长上升子序列最长上升子序列II 一、最长上升子序列IO链接 本题思路:本题是一关于dp问题中的一个类型是最长上升子序列问题&#xff0c;首先我们将状态表示出来&#xff1a;f[i]表示以a[i]结尾的最大的上升序列。状态计算&#xff08;集合划分&#xff09;&#xf…

如何防盗版软件

有多少公司&#xff0c;至今都无法摆脱被盗版软件支配的恐惧&#xff1f; 其实大多数时候&#xff0c;企业都是被动当了大冤种&#xff0c;因为他们也并不会主动要求员工使用破解软件。实在是架不住有些不懂版权的、心存侥幸的员工私下里使用。只要公司联网&#xff0c;就一定…

猫头虎博主第5️⃣期赠书活动:《Java官方编程手册(第12版·Java 17)套装上下册》

&#x1f337;&#x1f341; 博主猫头虎&#xff08;&#x1f405;&#x1f43e;&#xff09;带您 Go to New World✨&#x1f341; &#x1f984; 博客首页——&#x1f405;&#x1f43e;猫头虎的博客&#x1f390; &#x1f433; 《面试题大全专栏》 &#x1f995; 文章图文…

JK405R-SOP16录音芯片ic方案的常见问题集锦包含录音长度功耗以及外挂spiflash

目录 问题1 1、KT405R是什么&#xff1f; 具备哪些功能&#xff1f; 有什么特色&#xff1f; 问题2 2、KT405R录音的机制是怎样的&#xff1f; 问题3 3、KT405R的供电电压详细说明&#xff1f;以及功耗控制手段 问题4 4、KT405R支持多段录音&#xff1f;每段时长如何划…

招商信诺人寿基于 Apache Doris 统一 OLAP 技术栈实践

本文导读&#xff1a; 当前&#xff0c;大数据、人工智能、云计算等技术应用正在推动保险科技发展&#xff0c;加速保险行业数字化进程。在这一背景下&#xff0c;招商信诺不断探索如何将多元数据融合扩充&#xff0c;以赋能代理人掌握更加详实的用户线索&#xff0c;并将智能…