找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
查看: 197|回复: 8

[分享] 强荐嵌入版 Python,很小很快很兼容,10MB

[复制链接]
发表于 3 小时前 | 显示全部楼层 |阅读模式
本帖最后由 2010hook 于 2026-9-11 10:33 编辑

官网:https://www.python.org/downloads/windows/
用法:https://www.jianshu.com/p/8bd34d13415e
名称:Windows embeddable package
大小:10.5MB(3.13.15-embed-amd64)

2026-09-10_230838.png



运行 Python 脚本:PyPy vs 嵌入式 CPython,谁才是最优解?

一、背景

最近在优化一个下载并精简 MSVC 编译器的 Python 脚本,任务特征是:
  • HTTPS 下载 VS 清单与资源包
  • 解析多层嵌套 JSON
  • SHA256 校验
  • ZIP 解压与 MSI 调用
  • 大量文件系统操作(复制、删除)

脚本属于典型的 I/O 密集型短任务,需要找一个既能跑起来、体积又小的 Python 运行环境。
  • PyPy —— 带 JIT 的 Python 实现
  • 嵌入式 Python(CPython Embeddable Package) —— 官方提供的最小化 CPython

结论:嵌入式 CPython 完胜



二、体积对比:嵌入式 Python 完胜
嵌入式 Python(CPython)
  • 压缩包:约 7 ~ 10 MB
  • 解压后:约 12 ~ 20 MB

PyPy
  • 压缩包:约 25 ~ 31 MB
  • 解压后:仅 libpypy-c.dll 一个文件就有 46 MB,总体超 110 MB

结论:嵌入式 Python 的总体积通常不到 PyPy 的五分之一,分发更轻便。



三、性能对比:PyPy 的优势无法发挥

很多人选 PyPy 是冲着 JIT 加速去的,但在这个脚本里:
  • 瓶颈在磁盘和网络,不在 CPU。JIT 再快也改变不了 I/O 等待。
  • PyPy 的 JIT 需要预热:一般要执行上千次循环后才启动,短脚本还没热起来就跑完了,启动开销反而比 CPython 大。
  • PyPy 在某些 I/O 场景下反而更慢:社区有报告指出,处理文件写入时 PyPy 的性能可能比 CPython 低数倍。

结论:对 I/O 密集型短脚本,PyPy 的 JIT 是“英雄无用武之地”,甚至可能是负担。



四、兼容性与易用性:嵌入式 Python 更省心

嵌入式 Python 的小注意点
  • 一般标准的py脚本不必修改 python*._pth 或下载第三方库。
  • 默认处于隔离模式,需要通过修改 python*._pth 启用导入site模块搜索路径。
  • 官方文档称其不支持 pip,但社区已有成熟的解决方案,只需简单修改配置文件即可。

PyPy 的潜在风险
  • Windows 上路径包含非 ASCII 字符时曾出现报错。
  • 处理非 Unicode 路径时存在解码错误的历史问题。
  • 脚本用的标准库通常兼容,但没必要引入未知风险。

结论:嵌入式 Python 的“小脾气”是可预知、可控的;PyPy 的兼容性问题是不可预知的。



五、最优解
嵌入式 CPython + 一个启动批处理(.bat)

具体做法:
  • 下载官方 Embeddable Package,解压到脚本同目录。
  • 简单标准.py不必修改 python*._pth(把 #import site 开头的#删除),报错再补充库。
  • 写一个 @run.bat,设置好环境变量后调用 python.exe 主脚本.py
  1. @echo off & pushd "%~sdp0"
  2. python --version
  3. python 010keygen.py
  4. python portable-msvc.py --accept-license --host x64 --target x64 --msvc-version 14.40 --sdk-version 26100
  5. pause
复制代码

这样得到的结果是:
  • 体积小:20 MB 上下,远小于 PyPy
  • 性能稳:I/O 场景不拖后腿
  • 兼容好:官方 CPython,无冷门坑
  • 体验佳:双击即用,无需装 Python




六、一句话总结
PyPy 适合 CPU 密集型的长期运行任务;对于 I/O 密集型的短脚本,嵌入式 CPython 在体积、性能、兼容性三方面全面胜出

发表于 3 小时前 | 显示全部楼层
感谢分享
回复

使用道具 举报

发表于 3 小时前 | 显示全部楼层
感谢分享好东东
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
推荐使用nuitka打包成onefile版本,体积能缩小到原应用的30%左右,使用标准版python运行时即可

点评

感谢热心推荐!我见过别人用,有点印象。  详情 回复 发表于 2 小时前
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
多谢分享
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
又了解到了新知识
回复

使用道具 举报

 楼主| 发表于 2 小时前 | 显示全部楼层
本帖最后由 2010hook 于 2026-9-11 14:15 编辑
axiang117 发表于 2026-9-11 11:21
推荐使用nuitka打包成onefile版本,体积能缩小到原应用的30%左右,使用标准版python运行时即可 ...

感谢热心推荐!我见过别人用,有点印象。
搜了看看,打包与否,各有利弊吧。我习惯Py源码。
回复

使用道具 举报

发表于 2 小时前 | 显示全部楼层
多谢,又有好软件了
回复

使用道具 举报

发表于 8 分钟前 | 显示全部楼层
感谢分享好东东
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1|闽公网安备35020302032614号 )

GMT+8, 2026-9-11 14:18

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表