一、使用 PyInstaller 打包(最常用、最简单)
PyInstaller 是目前最主流的 Python 打包工具,支持 Windows、macOS、Linux 系统,使用简单且兼容性好。
安装 PyInstaller
首先打开命令提示符(CMD)或终端,执行以下命令安装:
pip install pyinstaller如果下载速度慢,可以使用国内镜像源:
pip install pyinstaller -i https://pypi.tuna.tsinghua.edu.cn/simple基础打包命令
假设你的 Python 程序文件名为main.py,放在D:\my_project目录下:
第一步:进入程序所在目录(CMD 中执行):
cd D:\my_project第二步:执行打包命令:
# 基础打包(生成多个文件,包含依赖库)
pyinstaller main.py
# 打包为单个exe文件(推荐,更方便分发)
pyinstaller -F main.py
# 打包为单个exe + 隐藏控制台窗口(GUI程序必备,如tkinter/Qt程序)
pyinstaller -F -w main.py
# 自定义exe图标(图标文件必须是.ico格式)
pyinstaller -F -w -i my_icon.ico main.py命令参数说明
打包结果位置
打包完成后,会在程序目录下生成dist和build两个文件夹:
build:临时缓存文件,可删除;dist:最终的 exe 文件会放在这里,直接复制这个 exe 文件即可分发使用。
二、常见问题及解决方法
打包后 exe 文件过大
原因:PyInstaller 会把 Python 解释器和所有依赖库都打包进去;
解决:
使用虚拟环境(venv),只安装程序必需的依赖,避免多余库;
用
-F打包时,可尝试使用 UPX 压缩(需单独下载 UPX 并配置环境变量)。
exe 运行提示 “缺少 dll”
原因:依赖库的 dll 文件未被正确打包;
解决:
确保 Python 程序在打包前能正常运行;
手动将缺失的 dll 文件复制到 exe 同目录下;
升级 PyInstaller 到最新版本:
pip install --upgrade pyinstaller。
打包包含数据文件(如图片、配置文件)
方法 1:打包时指定数据文件路径,例如:
pyinstaller -F -w --add-data "static;static" main.py(Windows 用
;分隔,macOS/Linux 用:分隔,格式:源路径;目标路径)方法 2:在代码中使用
sys._MEIPASS获取打包后的资源路径(适配打包 / 未打包两种场景)。
三、其他打包工具(备选)
如果 PyInstaller 不满足需求,可尝试以下工具:
cx_Freeze:轻量级,支持分发包和单个 exe,适合简单程序;
py2exe:仅支持 Python 3.3-3.4(较老旧,不推荐);
Nuitka:将 Python 代码编译为 C 语言再打包,运行速度更快,但配置复杂。
总结
打包 Python 程序为 exe 的首选工具是PyInstaller,核心命令为
pyinstaller -F -w 文件名.py;关键参数:
-F(单文件)、-w(隐藏控制台)、-i(自定义图标);常见问题解决:清理缓存、使用虚拟环境、手动补充缺失的 dll / 数据文件。