将 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),拉你进入行业技术交流群,进行技术交流~

相关推荐
wearegogog1235 小时前
基于 MATLAB 的卡尔曼滤波器实现,用于消除噪声并估算信号
前端·算法·matlab
一只小小汤圆5 小时前
几何算法库
算法
Evand J5 小时前
【2026课题推荐】DOA定位——MUSIC算法进行多传感器协同目标定位。附MATLAB例程运行结果
开发语言·算法·matlab
leo__5205 小时前
基于MATLAB的交互式多模型跟踪算法(IMM)实现
人工智能·算法·matlab
忆锦紫5 小时前
图像增强算法:Gamma映射算法及MATLAB实现
开发语言·算法·matlab
t198751285 小时前
基于自适应Chirplet变换的雷达回波微多普勒特征提取
算法
guygg886 小时前
采用PSO算法优化PID参数,通过调用Simulink和PSO使得ITAE标准最小化
算法
老鼠只爱大米6 小时前
LeetCode算法题详解 239:滑动窗口最大值
算法·leetcode·双端队列·滑动窗口·滑动窗口最大值·单调队列
mit6.8246 小时前
序列化|质数筛|tips|回文dp
算法
rgeshfgreh6 小时前
C++字符串处理:STL string终极指南
java·jvm·算法