将Python程序打包成exe文件

news/2024/5/19 22:29:18 标签: python, exe, pyinstaller

我新写了一篇更加完整的文章,与这篇文章相比,它新增了两种打包方式:多python文件打包和含有资源文件的打包方式,具体请戳链接:

用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细)_小康2022的博客-CSDN博客本文一步一步地教你如何用 Pyinstaller 模块将Python程序打包成 exe 文件!这篇教程绝对是全网最全面、最详细的教程!包含四种打包的方法,从简单到复杂依次是:一般打包方法、虚拟环境打包方法、多 Python 文件的打包方法以及包含资源文件的打包方法。你还在等什么?赶紧进来学习吧!https://xiaokang2022.blog.csdn.net/article/details/127585881本篇文章较为老旧,推荐看上面的新文章,绝对是全网最全面最详细的教程!!!

【先来看看几个问题】

一、什么是exe可执行文件?

        exe文件英文全名是executable file,翻译为可执行文件(但它不等于可执行文件),可执行文件包含两种,文件扩展名为.exe的是其中的一种。exe文件可以在Windows平台上直接双击运行!我们通常用的各种软件都是通过快捷方式打开的,而这个快捷方式的目标地址就是这个软件的一个exe文件。

二、为什么要将Python程序打包为exe可执行文件?

        众所周知,Python程序的运行必须要有Python的环境,但是程序编出来是用的,如果是给别人用,而他/她的电脑上又没有Python程序运行的环境怎么办呢?总不能让他/她去安装一个吧?这时我们就要将Python程序打包为exe可执行文件,这样,在Windows平台下,就可以直接运行该程序,不论有没有Python环境。

三、为什么Python程序不能直接运行呢?

        Python是解释性语言,它与C或者C++等语言不同,C或者C++都是要编译再运行的,(编译产生的文件就是exe文件),Python本质上只是对一段文本进行解释,类似于浏览器解析html文档,是不会产生任何exe程序的。

【打包的完整方法】

【步骤01】

【在命令行中用pip工具安装Pyinstaller模块】

python">pip install Pyinstaller

【步骤02】

【切换命令行的路径到你要打包的Python源文件的文件夹路径下】

【下面是我要打包的Python源文件(散点坐标图.py)及其文件夹路径】

【切换命令行路径】(不是文件路径)

cd 文件夹路径

【步骤03】

【执行Pyinstaller模块的功能】

python">Pyinstaller -F -w 文件名.py

【等待打包】

【打包成功的标志】

【步骤04】

【到原文件夹找到dist文件夹并打开】

【文件夹里面就是我们要的exe可执行文件了!双击即可运行!】


但是这样打包的Python程序一般会很大,因为它会把一些不必要的东西也打包进去了,(通常可能会达到几百MB的大小😂)这里我们采用创建虚拟环境的方式进行压缩,也就是下面的升级版

【升级版步骤01】

【创建虚拟环境】

conda create -n 虚拟环境名称(自定义) python=版本

【在创建的过程需要回复yes】

【升级版步骤02】

【激活虚拟环境】(我之前就已经创建了一个名为program的虚拟环境)

python">conda activate 虚拟环境名称

【前面的(base)变成了(program)】

【这个虚拟环境就相当于一个虚拟的Python,它包含的模块没有那么完整(比较少),这样就不会打包不必要的模块】

【虚拟环境pip安装Pyinstaller模块,同上】

【注意:虚拟环境创建后,以后都可以用,不用再重新创建,Pyinstaller模块pip安装后也是】

【同样的操作,打包后的文件大小能缩小(在一般Python程序的打包中不是很明显,对于GUI界面化程序十分明显)】

【升级版步骤03】

【说明:这一步不是必要的】

【打包的程序我们是可以改它的图标的,它默认的图标是】

【更改方式(在创建时才能更改)】

Pyinstaller -F -w -i ico图标文件名 Python文件名

【 到底了哦,原创不易,点个赞呗!】


http://www.niftyadmin.cn/n/367218.html

相关文章

《Spring Guides系列学习》guide56 - guide60

要想全面快速学习Spring的内容,最好的方法肯定是先去Spring官网去查阅文档,在Spring官网中找到了适合新手了解的官网Guides,一共68篇,打算全部过一遍,能尽量全面的了解Spring框架的每个特性和功能。 接着上篇看过的gu…

高阶python | 装饰器

python版本:3.10.0 在学习装饰器前先了解一下闭包 阿-岳同学【python技巧060】形象理解闭包,玩转闭包 通过视频首先可以了解到主要的三个知识点 闭包是嵌套结构内层函数有调用外层函数的变量为闭包,同时内层函数是闭包函数(所…

cf1627 D 思维

题意:https://www.luogu.com.cn/problem/CF1627D 思路:因为gcd只会越来越小,所以我们可以枚举所以数,看它最后是否会被加入集合。check的方法就是看所以集合中是i倍数的数的gcd是否最终等于i,是的则会。 /*keep on g…

Java中的String数据类型,String类(字符串)详解

目录 第一章、String概述1)String是什么2)String长什么样3)String的构造方法(声明方式) 第二章、String类的详解1)String底层是什么2)字符串存储的内存原理/字符串常量池(String Constant Pool)3&#xff0…

结构体 --- C语言

目录 1.结构体的声明 2.结构体变量的定义和初始化 3.结构体成员访问 4.结构体传参 1.结构体的声明 结构是一些值的集合,这些称为成员变量,结构的每个成员可以是不同类型的变量。 而数组是一组类型相同的元素的集合。 生活中的描述 人:名…

Spring注解

什么是基于Java的Spring注解配置? 给一些注解的例子 基于Java的配置,允许你在少量的Java注解的帮助下,进行你的大部分Spring配置而非通过XML文件。 以Configuration 注解为例,它用来标记类可以当做一个bean的定义,被Spring IOC容…

Solidity拓展:数学运算过程中数据长度溢出的问题

在数学运算过程中假如超过了长度则值会变成该类型的最小值,如果小于了该长度则变成最大值 数据上溢 uint8 numA 255; numA;uint8的定义域为[0,255],现在numA已经到顶了,numA会使num变成0(由于256已经超过定义域,它会越过256&…

SAP-MM-采购申请-价值特性

采购申请审批在维护价值特性时要注意是抬头价值还是行价值,要确定选择哪个,配置时对应配置。 1、创建价值特性CT04 字段名称:CEBAN-GSWRT,和CEBAN-GFWRT 抬头总价值:CEBAN-GFWRT;如果选择的是抬头审批&am…