👉 项目官网:https://www.python-office.com/ 👈

👉 本开源项目的交流群 👈

github star gitee star atomgit star

AI编程 AI交流群

大家好,这里是程序员晚枫,正在all in AI编程实战,全网同名。

(本讲可永久收藏,随查随用)


12.1 一页纸速查表(A4 横向打印版)

目标命令 / 片段备注
最常用打包pyinstaller --onefile --name app --icon app.ico main.py90 % 场景
GUI 无黑框--noconsole (Win) / --windowed (mac)console=False 等价
数据文件--add-data "src/data;data" (Win)
--add-data "src/data:data" (Unix)
分隔符不同
隐藏导入--hidden-import pkg.sub动态 import 必备
排除模块--exclude-module matplotlib.tests瘦身首选
UPX 压缩--upx-dir /usr/local/bin --upx-exclude Qt5Core.dll需先装 UPX
版本信息--version-file version.txtWin 专属
调试--onedir --debug all本地复现首选
服务打包--onedir + systemd / sc第十二讲项目 3
交叉打包不能!用 CI 多 job记住即可

12.2 官方 & 社区资源

类型链接用途
官方文档https://pyinstaller.org/en/stable/权威 API & hook 列表
GitHub Issueshttps://github.com/pyinstaller/pyinstaller/issues搜关键字 + label:bug
Discussionshttps://github.com/pyinstaller/pyinstaller/discussions提问前先搜
中文论坛https://discuss.python.org/c/packaging中文交流
Hook 仓库https://github.com/pyinstaller/hooks提交自定义 hook
速查卡片本讲 12.1打印贴屏幕

12.3 模板仓库(直接 fork)

GitHub:github.com/yourname/pyinstaller-templates
目录结构:

1
2
3
4
5
6
7
templates/
├─ cli-auto-update/ # 第十一讲项目 1
├─ qt-gui-installer/ # 第十一讲项目 2
├─ ml-service/ # 第十一讲项目 3
├─ minimal.spec # 最小可改模板
├─ cross-ci.yml # GitHub Actions 通用
└─ version_info.txt # Windows 版本信息样例

使用:
git clone → 改名字 → 替换图标 → Push tag → 5 分钟出 Release。


12.4 版本迁移笔记(4.x → 5.x → 6.x)

版本破坏性变更迁移动作
4.10 → 5.0--onedir 目录结构改变把脚本里硬编码 dist/app/_internal 改为 sys._MEIPASS
5.x → 6.0UPX 默认关闭如需压缩手动 --upx-dir
6.x → 7.0 (预览)移除 Python 3.7 支持升级到 3.8+

官方迁移指南:
https://pyinstaller.org/en/stable/CHANGES.html


12.5 如何给 pyinstaller 贡献代码(2 min)

  1. Fork → 新建分支 fix-hook-torch
  2. 修改 pyinstaller/hooks/hook-torch.py
  3. 运行测试
1
2
pip install -e ".[testing]"
pytest tests/functional/test_hooks/test_torch.py -v
  1. 提交 PR → 等待 review → 合并后你的名字出现在下一版 release notes!

12.6 常见“一句话”备忘录

• 体积爆炸 → 先 --onedir 看哪个文件最大
• 闪退无日志 → 发 --console 诊断版
• macOS “已损坏” → xattr -dr com.apple.quarantine MyApp.app
• Win 报毒 → 关闭 UPX + 代码签名
• 插件不加载 → 打印 sys.path 检查 _MEIPASS 外路径


结课彩蛋

你已走完 12 讲:
CLI → GUI → ML → CI/CD → 安装包 → 插件化 → 商业保护 → 社区贡献。

下一步:

  1. 把本讲速查表贴在工位
  2. fork 模板仓库,发你的第一个 Release
  3. 遇到新问题,回到 12.2 的链接提问或提 PR

祝打包愉快,永不踩坑!


大家在学习课程中有任何问题,欢迎+微信和我交流👉我的联系方式:微信、读者群、1对1、福利

扫一扫,领红包

美团红包

🎓 AI 编程实战课程

程序员晚枫专注AI编程培训,通过 《30讲 · AI编程训练营》,让小白也能用AI做出实际项目。帮你从零上手!