Notes · 2026-10-13
升级 Python 3.15 前,先查清哪些依赖还没有 wheel
2026 年 10 月 CPython 3.15 正式发布,自由线程版本 3.15t 也进入“受支持”阶段。随后各个项目的 issue 区开始出现同一类帖子:“支持 Python 3.15”,下面是一张手工整理的依赖清单——谁有 wheel、谁还没有。
升级卡在哪
看看 harlequin#1119 和 dynamic-des#40:维护者逐个打开 PyPI 页面,翻文件列表找 cp315;再为 3.15t 查一遍(abi3 wheel 在自由线程版上不能用);再为 macOS、Windows 各查一遍;下周再来一遍。
pip 帮不上太多:遇到第一个需要编译的包就停下,需要在每个系统上装好目标解释器,也不会告诉你哪个新版本已经有 wheel。Dependabot / Renovate 会升版本,但不懂 wheel 标签。
wheelripe 做什么
读取 lockfile(uv、PEP 751、Poetry、Pipenv、requirements、pyproject),每个包向 PyPI JSON API 发一次请求,按 pip 的规则逐平台匹配解释器、ABI(含 PEP 803 的 abi3t)和平台标签(含 glibc / macOS 下限)。
$ uvx --from git+https://github.com/Blackman99/wheelripe wheelripe uv.lock -p 3.15t关键是区分 BUMP(升到某个版本就有 wheel,今天就能改)和 BLOCKED(任何版本都还没有,只能等上游;报告里附上游链接)。
结果可信吗
CI 每次提交都会让 pip 本身(--dry-run --only-binary=:all:,显式指定 Python/ABI/平台)对 26 个真实包、7 个平台、3.15 与 3.15t 逐一给出答案,与 wheelripe 不一致就失败;还会在真实的 3.15 / 3.15t 解释器上安装验证。
让 CI 每周告诉你
- uses: Blackman99/wheelripe@v0.1.0
with:
python-version: "3.15t"
fail-on: blocked最后一个阻塞依赖发布 wheel 的那一周,任务会变绿。另有 MCP server,编码 agent 改 requires-python 前可以先问一下。