【发布时间】:2019-11-27 23:06:36
【问题描述】:
问题
在给定一组版本说明符的情况下,如何使用pip(或任何其他工具)安装最低版本的依赖项。所以如果我指定requests >=2.0, <3.0,我实际上想安装requests==2.0。
动机
在创建 Python 包时,您可能希望用户能够在各种环境中与之交互。这意味着您通常会声称支持给定依赖项的多个版本。例如,有人可能声称他们的包支持requests>=2.0。这里的问题是,为了负责任地提出这个声明,我们需要某种方式来测试我们的包是否可以与requests==2.0 一起使用,也可以与最新版本以及介于两者之间的任何内容一起使用。
不幸的是,我认为没有一个很好的解决方案可以测试对所有可能的依赖项组合的支持,但您至少可以尝试测试您的依赖项的最大和最小版本。
为了解决这个问题,我通常会创建一个 requirements.min.txt 文件,其中包含我所有依赖项的最低版本,这样当我想测试我的更改是否没有破坏我对旧版本的支持时,我可以安装这些文件。因此,如果我声称支持requests>=2.0 我的requirements.min.txt 文件将有requests==2.0。
这种针对一个人的最小依赖集进行测试的问题的解决方案虽然感觉很混乱。有没有人也找到了好的解决方案?
【问题讨论】:
标签: python pip integration-testing dependency-management