将 Python 应用打包成 exe 软件,仅需一行代码搞定!

初学 Python 的同学可能会觉得开发一个 exe 软件非常复杂,其实不然,从将 .py 应用程序打包成 .exe 软件,仅仅只需一行代码就可以搞定!

而实现这一强大功能的就是 PyInstaller 工具!它能够将你的 Python 脚本打包成独立的可执行文件,无需安装 Python 解释器或任何第三方库,真正实现"一次打包,处处运行"。

文档地址:pyinstaller.org/

代码仓库:github.com/pyinstaller...

PyInstaller 会读取您编写的 Python 脚本,通过分析代码来发现程序运行所需的所有模块和库。随后收集这些文件的副本(包括活动的 Python 解释器),并将其与您的脚本共同打包至单个文件夹,或可选地生成独立可执行文件。

1. 安装 PyInstaller

安装 PyInstaller 非常简单,只需通过 pip 命令即可完成。推荐在虚拟环境中安装,以避免与系统全局 Python 环境产生冲突。

复制代码
pip install pyinstaller

2. 基础打包命令

使用 PyInstaller 打包一个简单的 Python 脚本仅需一行命令。它会自动分析脚本的导入语句,收集所有依赖项,并生成可执行文件。默认情况下,输出文件位于 dist目录中,你可以直接运行它而无需 Python 环境。

复制代码
pyinstaller your_script.py

3. 常用参数详解

PyInstaller 提供了丰富的命令行参数,允许你自定义打包行为。例如,使用 --onefile参数可以将所有文件打包成单个可执行文件,而 --windowed参数则适用于 GUI 应用,避免显示命令行窗口。掌握这些参数能让你更灵活地控制输出结果。

css 复制代码
pyinstaller --onefile --windowed your_script.py

4. 实战案例:打包一个 GUI 应用

让我们以打包一个简单的 Tkinter GUI 应用为例,演示 PyInstaller 的实际操作。首先创建一个包含窗口和按钮的脚本,然后使用 PyInstaller 生成可执行文件。注意添加 --windowed参数以避免命令行窗口弹出。

scss 复制代码
import tkinter as tk
from tkinter import messagebox

def on_click():
    messagebox.showinfo("Hello", "Welcome to PyInstaller!")

root = tk.Tk()
root.title("Demo App")
button = tk.Button(root, text="Click Me", command=on_click)
button.pack(padx=20, pady=20)
root.mainloop()

打包命令如下:

css 复制代码
pyinstaller --windowed --onefile gui_app.py

最终会在该目录下生成 dist 目录,dist 目录中生成 gui_app.exe 可运行软件!

5、总结

由以上可知,使用 pyinstaller 打包 exe 文件十分简单:仅需一行命令!大家如果有将 python 应用程序打包成 exe 执行文件的需求,不妨一试 pyinstaller!

如果你喜欢本文,欢迎点赞,并且关注我们的微信公众号:Python技术极客 ,我们会持续更新分享 Python 开发编程、数据分析、数据挖掘、AI 人工智能、网络爬虫等技术文章!让大家在Python 技术领域持续精进提升,成为更好的自己!

添加作者微信(coder_0101),拉你进入行业技术交流群,进行技术交流~

相关推荐
Σίσυφος19006 小时前
PCL法向量估计 之 RANSAC 平面估计法向量
算法·机器学习·平面
xhbaitxl6 小时前
算法学习day39-动态规划
学习·算法·动态规划
I_LPL6 小时前
day23 代码随想录算法训练营 回溯专题2
算法·hot100·回溯算法·求职面试
智者知已应修善业6 小时前
【洛谷P9975奶牛被病毒传染最少数量推导,导出多样例】2025-2-26
c语言·c++·经验分享·笔记·算法·推荐算法
m0_736919106 小时前
C++中的委托构造函数
开发语言·c++·算法
小小小小王王王7 小时前
洛谷-P1886 【模板】单调队列 / 滑动窗口
c++·算法
PPPPPaPeR.7 小时前
光学算法实战:深度解析镜片厚度对前后表面折射/反射的影响(纯Python实现)
开发语言·python·数码相机·算法
看我干嘛!7 小时前
python第五次作业
算法
历程里程碑7 小时前
Linux 库
java·linux·运维·服务器·数据结构·c++·算法
Sheep Shaun7 小时前
如何让一个进程诞生、工作、终止并等待回收?——探索Linux进程控制与Shell的诞生
linux·服务器·数据结构·c++·算法·shell·进程控制