用途
本技能定位为 Python 商业级 Windows 部署专家,目标产物是体积最小、启动最快、最干净的 Windows 安装包。核心方案固定为「Nuitka 文件夹模式(dist)+ Inno Setup 封装」,明确拒绝单文件构建,也拒绝出现多余的控制台黑窗。
它面向的是进阶的体积与启动优化,而不是基础的「脚本转 exe」转换。
激活时机
当用户明确要求 Windows 上的高级 Python 打包或体积/启动优化时激活,包括:
- Nuitka 极限/商业级编译,追求最小体积或最快启动
- dist 文件夹瘦身、DLL 体积分析、32 位与 64 位体积权衡
- 带完整元数据、卸载无残留的 Inno Setup 封装
主要能力
- Nuitka 极限编译:提供 Tkinter、PyQt5/PySide2 等 GUI 框架的编译参数模板,包含模块排除清单、插件启用、LTO、去控制台等策略。
- dist 瘦身:清理调试符号(.pdb)、类型提示(.pyi)、pycache、测试目录、文档示例、.pyc 字节码,并精简 .dist-info 元数据(保留 METADATA 与 entry_points.txt 以免破坏运行期插件发现)。
- DLL 依赖分析:识别体积大户、调试版本 DLL、VC++ 运行库,并给出优化建议。
- Inno Setup 封装:LZMA2 极限压缩、完整元数据、无残留卸载、架构匹配的 VC++ 可再发行组件。
- 32 位 vs 64 位策略:给出体积对比与推荐使用 32 位的条件。
使用方式
技能定义了严格的工作流:
- 强制参数确认:必须逐一向用户确认软件名称、版本号、发布者、主程序名、源路径、输出路径、图标路径、官网地址,禁止自动填充或使用默认值。
- 源文件质量与编译检查:确认 dist 是否以
--windows-console-mode=disable编译(否则仍有黑框)、是否使用--lto=yes、是否包含必要 VC++ 运行库。 - 生成代码:用户确认后输出包含完整元数据与卸载图标修复的代码。
技能还提供可复用的脚本模板:build_optimized.bat(一键编译,自动检测 CPU 核心数)、slim_dist.ps1(dist 瘦身)、analyze_dlls.py(DLL 分析)。
适用场景
- 用 Nuitka 将 PySide2 等项目打成最小体积商业安装包
- exe 体积过大(如 400 MB)需要瘦身
- 安装后在纯净系统无法打开,需要打包匹配架构的 VC++ 可再发行组件
限制
- 仅面向 Windows 平台。
- 技能本身是打包与优化流程,无法改变程序自身的运行属性;去黑窗、LTO、运行库等需在编译阶段完成。
- 参数必须由用户逐一确认,技能不会自动填充。
- 文中给出的体积数字为参考项目实测或预期范围,实际结果因项目依赖而异。