当前位置: 首页 > news >正文

Python打包脚本为EXE可执行文件

Python打包脚本为EXE可执行文件

  • 1. 打包原理
  • 2. 代码示例
    • 2.1 项目需求
    • 2.2 项目结构
    • 2.3 文件内容
    • 2.4 安装依赖库
    • 2.5 使用Pyinstaller进行打包
  • 3. 注意事项
    • 3.1 新建虚拟环境
    • 3.2 替换EXE文件图标
  • 4. 效果展示

1. 打包原理

Python脚本打包为EXE的过程,主要是通过将Python代码、依赖库和Python解释器一起打包成一个可执行文件,从而实现不依赖于Python环境的独立执行。

以下是Python打包为EXE的主要原理和步骤:

  • 依赖收集:打包工具(如PyInstaller)分析Python脚本的所有依赖,找到需要的模块和库。

  • 解释器封装:将Python解释器一并打包,以便EXE文件在无Python环境的机器上也能运行。

  • 字节码编译:将Python源代码编译成字节码文件(.pyc),提高运行效率并避免直接暴露源码。

  • 资源打包:将脚本所需的静态资源(如图片、配置文件)打包到可执行文件中。

  • 引导执行:生成引导代码,启动时加载Python解释器并执行目标脚本。

2. 代码示例

若需要将一个Python小项目打包成exe,则一般会选取入口程序(或称为主程序)作为打包的入口,并通过打包工具Pyinstaller进行打包操作。以下我们通过一个简单的小项目来实践一下使用Pyinstaller整个打包流程。

2.1 项目需求

创建一个Python小项目,包含三个脚本文件:add.py(加法脚本)、sub.py(减法脚本)和main.py(主程序脚本),以及一个配置文件 config.yaml。在 main.py 中导入 add.py 的加法函数和 sub.py 的减法函数,并通过读取 config.yaml 中的参数来决定调用加法或减法函数。项目编写完成后,使用 pyinstaller 命令将 main.py 打包为可执行文件 main.exe

2.2 项目结构

my_project/
├── add.py          # 加法脚本
├── sub.py          # 减法脚本
├── main.py         # 主程序脚本
└── config.yaml     # 配置文件

2.3 文件内容

add.py- 加法脚本

# add.py
def add(a, b):return a + b

sub.py- 减法脚本

def subtract(a, b):return a - b

config.yaml - 配置文件

operation: "add"   # 设置为 "add" 进行加法运算,设置为 "sub" 进行减法运算
a: 10
b: 5

main.py - 主程序脚本

# main.py
import yaml
from add import add
from sub import subtract# 读取配置文件
config_path = "./config.yaml"
with open(config_path, "r", encoding="utf-8") as file:config = yaml.safe_load(file)operation = config.get("operation")
a = config.get("a", 0)
b = config.get("b", 0)# 根据配置文件选择操作
if operation == "add":result = add(a, b)print(f"Result of addition: {result}")elif operation == "sub":result = subtract(a, b)print(f"Result of subtraction: {result}")
else:print("Invalid operation specified in config.yaml")# 等待用户按任意键退出
input("Press any key to exit...")

2.4 安装依赖库

首先确保pyyaml已安装,它用于读取配置文件:

pip install pyyaml

接着确保pyinstaller已安装,它用于进行文件打包:

pip install pyinstaller

2.5 使用Pyinstaller进行打包

使用以下命令将 main.py 打包为 main.exe,并确保将 config.yaml 文件打包到 EXE 中:

pyinstaller --onefile --add-data "config.yaml;." main.py
  • --onefile:生成单个 EXE 文件。
  • --add-data "config.yaml;.":将 config.yaml 添加到打包后的文件夹中

3. 注意事项

3.1 新建虚拟环境

在打包Python项目时,建议新建一个虚拟环境并剔除不必要的文件,以减少生成的EXE文件的体积。这样可以避免将系统环境中的多余包一并打包进去,生成更精简的EXE文件。具体而言,可以只安装项目中实际使用的依赖包。一般情况下,使用 pip install -r requirements.txt 安装依赖,这样可以确保仅包含项目所需的库。

3.2 替换EXE文件图标

如果你想要更改生成的EXE文件的图标,可以使用 pyinstaller--icon 选项。首先,准备一个图标文件(.ico格式)或自定义的图片资源,然后在打包时指定该图标。以下是如何操作的步骤:

  1. 准备图标文件
    确保你的图标文件命名为 icon.ico(或者任何你想要的名称),并放在项目目录中。如果你希望在EXE文件中使用自定义的图片资源,则必须先将其转换为 ICO格式。直接使用 PNG 文件作为图标并不适用于 Windows 可执行文件(.exe)。Windows 系统通常要求图标文件使用 ICO 格式(.ico),因为 ICO 格式可以包含多个图像尺寸和颜色深度,这样操作系统能够根据需要选择合适的图标。

    以下是一个免费的在线JPG转ICON的网站: https://www.aconvert.com/cn/icon/jpg-to-ico/

  2. 修改打包命令
    如果已准备好图标文件,可在运行 pyinstaller 时添加 --icon 参数。 这样,生成的EXE文件将使用你指定的图标。

    pyinstaller --onefile --add-data "config.yaml;." --icon="icon.ico" main.py
    

4. 效果展示

根据上述的流程编写示例项目,并使用在线JPG转ICON的网站将 universe.jpg 转成 universe.ico后,打包的 main.exe 如下图所示:

在这里插入图片描述

在这里插入图片描述
当配置文件config.yaml中的 operationadd 时:
在这里插入图片描述
当配置文件config.yaml中的 operationsub 时:
在这里插入图片描述


http://www.mrgr.cn/news/66250.html

相关文章:

  • Redis(2):内存模型
  • CSS基础知识六(浮动的高度塌陷问题及解决方案)
  • 群控系统服务端开发模式-应用开发-菜单功能开发
  • [实战-11] FlinkSql 设置时区对TIMESTAMP和TIMESTAMP_LTZ的影响
  • Jenkins 构建时候提示超时错误被终止
  • 正则表达式(Regular Expressions)
  • 信息安全工程师(77)常见网络安全应急事件场景与处理流程
  • 基于SSD模型的行人跌倒、摔倒检测系统,支持图像、视频和摄像实时检测【pytorch框架、python源码】
  • segformer模型实现pcb缺陷检测
  • DMRl-Former用于工业过程预测建模和关键样本分析的数据模式相关可解释Transformer网络
  • vos3000外呼系统如何检查落地网关配置正常,路由分析
  • 为什么学习Mybatis框架
  • Vue3安装、创建到使用
  • 2025郑州国际台球及配套设施展会,台球盛宴,产业新篇
  • 判断图中是否存在环
  • 修正Z-score检验异常值
  • React 前端如何通过组件完成 “下载 Excel模板” 和 “上传 Excel 文件并读取内容生成可使用的对象数组”
  • Linux(文件管理 图片+大白话)
  • 人工智能学习--归一化(Normalization)
  • 动态规划-两个数组的dp问题——44.通配符匹配
  • 雷池社区版新版本功能防绕过人机验证解析
  • 如何无缝更换WordPress主题:关键步骤详解
  • 智慧工地:引领工地管理和监测的革新
  • 有代码MoSE: Modality Split and Ensemble forMultimodal Knowledge Graph Completion
  • lc 153 寻找旋转排序数组的最小值
  • keep-alive - 2024最新版前端秋招面试短期突击面试题【100道】