pip 26.2 的 only-deps 模式:解决了 16 年的应用部署难题
来源:jamesoclaire.com — 2026-07-23
📋 概述
pip 26.2 引入了一个看似微小但影响深远的特性:--only-deps 模式。这个功能允许只安装依赖项而不安装主包本身,解决了 Python 应用部署中持续 16 年的痛点——如何在 CI 中预装依赖、在 Docker 构建中分层缓存、在离线环境中批量准备依赖,而不触发主包的安装逻辑。
🔑 核心要点
- --only-deps 只安装 requirements.txt 中的传递依赖,跳过主包的 setup.py/pyproject.toml 执行
- 解决了 Docker 多阶段构建的缓存失效问题:依赖层可以在源码变更时保持缓存有效
- 此前 16 年间的各种 HACK:空 setup.py、fake 包、pip install .[deps] 再卸载——全部变得多余
- 配合 --require-hashes 可以实现完全可重现的依赖安装,对安全敏感的部署环境至关重要
- 该特性由 CPython 核心开发者 Paul Moore 主导实现,灵感来自npm ci 和 cargo vendor 的工作流
💡 金句
Sometimes the most impactful features aren't flashy — they just solve a 16-year-old papercut.
👍 0
👎 0
← 返回 Lobsters 首页