#2404·pip-tools

确保在 CI 中运行测试时,任何依赖项都被固定

作者: sirosen创建于 2026年5月19日更新于 2026年5月19日

我们已经在 tox 配置中为 pip 本身设置了弱绑定(pipsupported,piplowest),以及运行最新版本(pipmain)的能力。然而,pip-tools 的测试套件并未绑定所有次要依赖项(click)和测试依赖项(pytest 等)。不幸的是,一个具有讽刺意味的后果是,pip-tools 的 CI 稍微不稳定(参见例如 #2400),并且可能会因为依赖项发生变化而失败。通常当我发现令人惊讶的 CI 失败时,我会复制和比较 tox env 输出,以查看是否有包发生了变化,这是我第一个诊断步骤之一。CI 应该使用固定的包版本,以便可重现,我们应该根据自己的判断更新这些绑定。与文档依赖绑定(在 envname pip-compile-docs 下的 tox.ini 中找到)不同,在生成绑定时需要迭代支持的 Python 版本(以及平台?)。我对此的最佳先例是我工作中的现有情况: 包含针对每个目标的绑定的 tox 环境。[^1]

内容来源: jazzband/pip-tools