Python 代码打包成可执行文件(exe)实战指南
概述
在开发完一个小项目后,通常需要将代码发布给他人使用。直接提供源码需要用户安装运行环境,而将代码打包成独立的可执行文件(如 Windows 下的 exe)则能简化部署流程。PyInstaller 是目前最流行的 Python 打包工具之一,它可以将 Python 脚本转换为单个可执行文件或目录,支持跨平台。
除了 PyInstaller,还有其他工具可供选择:
- cx_Freeze:支持多平台,可将脚本转换为独立可执行文件。
- PyOxidizer:生成自包含的二进制文件,性能优化较好。
- Py2exe:仅适用于 Windows 平台。
本文重点介绍 PyInstaller 的使用方法及常见问题处理。
安装与基础准备
首先确保已安装 Python 环境,并通过 pip 安装 PyInstaller:
pip install pyinstaller
方式一:命令行直接打包
命令行打包适用于简单项目,无需复杂配置。假设有一个名为 demo.py 的文件:
# demo.py
import os
path = os.getcwd()
print(f'当前文件路径:{path}')
os.system('pause')
打包命令
在终端进入文件所在目录,执行以下命令:
pyinstaller -F demo.py
常用参数说明
-F/-D:-F生成单个可执行文件;-D生成一个目录(包含多个文件)。-w/-c:-w去掉命令行弹窗(窗口模式);-c显示命令行弹窗(控制台模式)。-i icon.ico:指定 exe 显示图标。--onefile:等同于-F。--onedir:等同于-D。
结果说明
打包完成后,会在原目录下生成两个文件夹:
- build:临时文件存放位置,包含中间编译文件,打包成功后可安全删除。
- dist:最终生成的可执行文件及其依赖项存放位置。
点击 dist 目录下的 demo.exe,若弹出小黑窗并显示路径信息,即表示打包成功。
方式二:使用 Spec 配置文件打包
Spec 文件打包适用于大规模、复杂项目,或需要自定义配置、频繁重复打包的场景。例如需要一起打包数据文件、动态链接库,或添加运行时选项时。
项目结构示例
PackingExe
├── core
│ ├── __init__.py
│ └── dict.txt
└── demo.py


