pip 26.1 引入锁文件和依赖冷却机制
Simon Willison··作者 Simon Willison
关键信息
新命令 `pip lock` 会生成一个包含所有依赖及其精确版本的 pylock.toml 文件;`--uploaded-prior-to P4D` 标志确保安装至少 4 天前上传的版本。
资讯摘要
pip 26.1 引入了锁文件功能,将已安装包的完整依赖树记录到一个 pylock.toml 文件中,确保不同环境下的构建一致性。同时新增依赖冷却机制,使用 ISO 时间格式(如 P4D)防止安装指定时间窗口内上传的包,有助于避免恶意或不稳定版本的引入。该版本停止支持 Python 3.9(已于去年十月结束生命周期)。
文中举例说明 `pip install llm --uploaded-prior-to P4D` 会安装较旧版本(0.30 而非 0.31),展示了其实际用途。这些特性对 CI/CD 流水线和安全部署流程尤其重要。
资讯正文
<p><strong><a href="https://ichard26.github.io/blog/2026/04/whats-new-in-pip-26.1/">pip 26.1 新特性:锁定文件与依赖冷却机制!</a></strong></p>
理查德·西描述了对 Python 默认依赖安装工具 <code>pip</code> 的一系列优秀升级。</p>
<pre><code>uv python install 3.14
mkdir /tmp/experiment
cd /tmp/experiment
python3.14 -m venv venv
source venv/bin/activate
pip install -U pip
pip --version
</code></pre>
<p>这确认我已使用 <code>pip 26.1</code>。随后我尝试了新的锁定文件功能:</p>
<pre><code>pip lock datasette llm
</code></pre>
<p>这会安装 Datasette 和 LLM 及其所有依赖项,并将全部内容写入一个 519 行的 <code>pylock.toml</code> 文件 —— <a href="https://gist.github.com/simonw/ff52c33f4d3a381b8e53c6a3aa0213f8">这是结果示例</a>。</p>
<p>新版还通过新增的 <code>--uploaded-prior-to PXD</code> 选项支持依赖冷却机制,其中 X 是天数。格式为 <code>P-number-of-days-D</code>,遵循 <a href="https://en.wikipedia.org/wiki/ISO_8601#Durations">ISO 时间持续期格式</a>,但仅支持以天为单位。</p>
<p>我三天前发布了 LLM 的新版本 0.31 <a href="https://simonwillison.net/2026/Apr/24/llm/">(详情见此处)</a>。以下是如何使用新的 <code>--uploaded-prior-to P4D</code> 选项来请求至少 4 天前上传的版本:</p>
<pre><code>pip install llm --uploaded-prior-to P4D
venv/bin/llm --version
</code></pre>
<p>这给了我版本 0.30。</p>
<p><small>来源:<a href="https://lobste.rs/s/w2oiaq/what_s_new_pip_26_1_lockfiles_dependency">Lobste.rs</a></small></p>
来源与参考
收录于 2026-04-29