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

相关推荐
梦帮科技6 小时前
【3.0修订版】音乐权利 NFT:MusicRightsNFT 的确权思想与授权关联
网络协议·算法·web3·区块链·密码学·智能合约·零知识证明
Dfreedom.6 小时前
基于PCA的光谱物质识别分析
算法
强化湿件的技术神甫6 小时前
KS检验和Lilliefors正态性检验方法
算法
yi0116 小时前
DAY23: LeetCode 27 → 283:从移除元素到移动零,理解快慢指针的两种思路
人工智能·笔记·python·算法·leetcode·排序算法·双指针
怕浪猫6 小时前
多 Agent 系统面试怎么答?我总结了 4 种经典架构
人工智能·算法·面试
程序员清风7 小时前
排序算法:从冒泡排序到归并排序
数据结构·算法·排序算法
万年咸鱼7 小时前
C语言内功心法篇——变量与数据类型
c语言·jvm·算法
Omics Pro7 小时前
反式感知虚拟细胞!超越线性序列
数据库·人工智能·算法·机器学习·自然语言处理
-dzk-7 小时前
【动态规划】LC 152.乘积最大子数组
算法·动态规划
积流成海7 小时前
一致性哈希原理与实现:分布式系统负载均衡
算法·负载均衡·哈希算法·哈希函数·盘子工具站