👉 项目官网:https://www.python-office.com/ 👈
👉 本开源项目的交流群 👈
大家好,这里是程序员晚枫,全网同名。
(对应图中 1.1 → 1.3 的完整闭环)
开场 1 分钟
想象你给同事发了一个 python main.py
,结果对方:
- 没装 Python
- 装了 3.7,你写的是 3.11 语法
- 双击弹出黑框闪退
本讲 10 分钟解决这个尴尬,并给出后续 12 讲的“通关地图”。
- 为什么必须打包(WHY)
- 1 开发机 ≠ 目标机
场景 痛点 打包后效果 运维脚本 服务器 Python 版本老旧 直接丢一个 ELF 可执行文件 数据分析小工具 同事不会 pip install 双击即用 游戏外挂 用户电脑缺 VC++ 运行库 单文件自带依赖
1.2 交付的三种境界
① 能跑:把解释器 + 依赖 + 代码一次性带走
② 专业:带图标、版本号、自动更新
③ 商业:防逆向、代码签名、授权校验
pyinstaller 把 ① 做成一条命令,② 用 .spec
文件,③ 可结合 Nuitka/加密壳。
- 4 大方案 60 秒对比(WHICH)
维度 | pyinstaller | cx_Freeze | Nuitka | Briefcase |
---|---|---|---|---|
打包速度 | ⭐⭐⭐⭐ | ⭐⭐⭐ | ⭐ | ⭐⭐ |
单文件 | ✅ --onefile |
需手动 | 需手动 | ✅ |
跨平台 | Win/Mac/Linux | 同上 | 同上 | 侧重移动端 |
商业加密 | 需第三方 | 需第三方 | 自带 –lto | 无 |
结论:
- 求快、求稳 → pyinstaller
- 求极致性能 → Nuitka
- 求移动原生 → Briefcase
- 本教程阅读路径图(HOW)
(把 12 讲浓缩成 3 条赛道)
3.1 极速上手赛道(30 分钟交付)
第 1~3 讲:一条命令 → 图标 → 发给同事
3.2 深度定制赛道(半天变产品)
第 4~8 讲:
.spec
文件 + CI/CD- 瘦身 50 MB → 15 MB
- 自动更新 & 代码签名
3.3 疑难杂症赛道(生产救火)
第 9~12 讲:
- 防病毒误报
- Qt / Torch 巨包裁剪
- 加密与授权
- 动手:30 秒完成第一次打包
(现场演示,给观众心理锚点)
1 | # 1. 准备 6 行脚本 |
看到输出 “Hello Windows” 即成功,下一讲我们给它加上图标和版本号。
- 小结 & 预告
• WHY:把「能跑」升级成「能交付」。
• WHICH:pyinstaller 是 80% 场景的最优解。
• HOW:3 条赛道,按需跳读。
下节课《第二讲:.spec 文件与图标、版本信息》带你脱离“一行命令”,进入专业产品级打包。