以下是 2025–2026 年最实用的 6 种 python 脚本打包成 windows exe 可执行文件 的主流方法,按易用性 × 普及度 × 实际场景排序。
| 排名 | 方法/工具 | 易用性 | 生成文件大小 | 启动速度 | 运行速度 | 反编译难度 | 典型场景 | 推荐指数 (★5) |
|---|---|---|---|---|---|---|---|---|
| 1 | pyinstaller | ★★★★★ | 大(onefile 常 50–300mb) | 慢(几秒~几十秒) | 普通 | 低 | 绝大多数 gui、小工具、初次尝试 | ★★★★★ |
| 2 | auto-py-to-exe | ★★★★★ | 同 pyinstaller | 同上 | 普通 | 低 | 零基础用户、gui 操作打包 | ★★★★☆ |
| 3 | nuitka | ★★★★☆ | 中~小 | 快 | 明显更快(1.5–4×) | 中~高 | 性能敏感、数值计算、想保护代码 | ★★★★☆ |
| 4 | cx_freeze | ★★★★ | 中 | 较快 | 普通 | 低~中 | 追求启动快、跨平台、自定义 setup.py | ★★★☆☆ |
| 5 | pyoxidizer | ★★☆☆☆ | 小~中 | 非常快 | 普通~快 | 中~高 | 极致体积/启动速度、rust 爱好者 | ★★☆☆☆ |
| 6 | shiv / pex | ★★★ | 小(.pyz) | 普通 | 普通 | 低 | 内部工具分发、需要 python 环境 | ★★☆☆☆ |
1. pyinstaller(目前最推荐的起点)
最成熟、兼容性最好、社区最大。
# 安装
pip install pyinstaller
# 最常用单文件模式(推荐)
pyinstaller -f --noconsole your_script.py
# 带图标 + 隐藏控制台 + 加数据文件
pyinstaller -f --noconsole --icon=app.ico \
--add-data "images;images" \
--add-data "config.json;." \
--name "mytool" your_script.py
# 调试时先用文件夹模式找问题
pyinstaller -d your_script.py
常见问题解决:
- 缺少模块 →
--hidden-import=numpy.core._methods等 - 数据文件丢失 →
--add-data或修改.spec文件 - 杀毒误报 → 用
--onedir模式,或提交样本给杀软厂商
2. auto-py-to-exe(图形界面,最适合新手)
本质是 pyinstaller 的 gui 封装。
pip install auto-py-to-exe auto-py-to-exe
优点:点点鼠标就能出 exe,适合演示、快速交付给非技术用户。
缺点:python 3.11+ 有时兼容性问题,建议用 3.9 或 3.10。
3. nuitka(追求速度与保护代码的首选)
真正把 python 转成 c → 编译成原生可执行文件。
# 安装(需要 c 编译器:msvc / mingw)
pip install nuitka
# 推荐写法(单文件 + 插件)
python -m nuitka --standalone --onefile \
--enable-plugin=tk-inter \
--windows-disable-console \
--windows-icon-from-ico=app.ico \
--include-data-dir=assets=assets \
your_script.py
2025–2026 亮点:
- 运行速度可达 cpython 的 2–4 倍(尤其 numpy/pandas/torch 代码)
- 反编译难度明显高于 pyinstaller
- 启动速度通常比 pyinstaller 快很多
缺点:打包时间长(复杂项目可能几分钟到十几分钟)。
4. cx_freeze(启动快、体积相对友好)
pip install cx-freeze
# 创建 setup.py
from cx_freeze import setup, executable
setup(
name="myapp",
version="1.0",
executables=[executable("main.py", base="win32gui")],
options={
"build_exe": {
"packages": ["numpy", "pandas"],
"include_files": ["config.json", "images/"],
"excludes": ["tkinter"] # 如不需要
}
}
)
# 打包
python setup.py build
# 或直接生成单文件(需额外配置)
优点:启动比 pyinstaller 快很多,目录结构清晰。
缺点:配置比 pyinstaller 稍麻烦。
5. pyoxidizer(极致启动速度 + 小体积)
rust 编写,嵌入式 python 解释器。
目前(2026)更适合有 rust 经验的开发者,或对启动时间、体积有极端要求的企业项目。
# pyoxidizer.bzl 配置示例(简化) [[python_distribution]] name = "embedded" python_exe = "python.exe" [[exe]] name = "myapp" script = "main.py"
优点:启动极快、内存占用低、可做到较小单文件。
缺点:学习曲线陡峭,生态远不如 pyinstaller。
6. shiv / pex(.pyz 格式,需目标机器有 python)
不是真正的 exe,但可以作为补充方案。
pip install shiv shiv -c myapp -o myapp.pyz .
优点:文件很小,跨平台。
缺点:目标机器必须安装 python。
快速选择指南(2026 视角)
| 你想要什么 | 推荐工具顺序 |
|---|---|
| 最简单、最快上手 | auto-py-to-exe → pyinstaller |
| gui 程序、给普通人用 | pyinstaller + --noconsole --onefile |
| 性能敏感、数值/ai 类程序 | nuitka(–onefile) |
| 启动时间敏感 | cx_freeze 或 nuitka |
| 极致体积 + 启动速度 | pyoxidizer 或 nuitka |
| 内部工具、服务器分发 | shiv / pex |
最推荐的入门组合(2026):
- 先用 auto-py-to-exe 快速出第一个 exe
- 遇到问题后转 pyinstaller 命令行精细控制
- 如果对速度/保护有要求 → 切换 nuitka
有具体项目类型(gui、命令行、带 numpy/pandas、带 pyqt/tkinter、pygame 等)可以告诉我,我可以给出更精确的打包参数和常见坑的解决方案~
到此这篇关于python轻松将脚本打包成exe应用的6种方法实现与对比的文章就介绍到这了,更多相关python脚本打包成exe内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
发表评论