文件体积从“最小”到“较大”的核心排序:
纯源码打包(wheel/egg) < Py2exe(Windows) < Nuitka < cx_Freeze < PyInstaller < Docker
1. 体积最小的核心选择
- 纯源码打包(wheel):极致最小(KB级),但目标机需有Python环境;
- Py2exe(仅Windows):轻量exe(MB级),仅支持老Python版本;
- Nuitka:原生二进制(MB级),无解释器,跨平台+源码保护。
2. 体积选型总结表
| 需求场景 | 最优方案 | 典型体积(HelloWorld脚本) |
|---|---|---|
| 目标机有Python,仅分发代码 | 纯源码打包(wheel) | <10KB |
| Windows专属,免Python环境 | Py2exe | ~1MB |
| 跨平台、免Python、源码保护+小体积 | Nuitka | ~5MB |
| 兼容老Python,免Python环境 | cx_Freeze | ~8MB |
| 快速上手、接受稍大体积 | PyInstaller(-D) | ~15MB |
3. 关键优化技巧
- 精简依赖:用
pipreqs . --force生成最小依赖清单; - 使用轻量Python版本:Python 3.11+嵌入式版本;
- 剥离调试信息:Nuitka/cx_Freeze用
strip命令; - UPX压缩:减小二进制体积20%-30%。
小竹工具箱