如何安装依赖项的最低版本

rmo*_*hea 5 python integration-testing pip dependency-management

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.

不过,这种针对一个人的最小依赖集进行测试的问题的解决方案感觉很混乱。有没有人也找到了一个好的解决方案?

Der*_*den 2

不是完整的答案,但可能会帮助您开始......

pip install pkg_name_here==
Run Code Online (Sandbox Code Playgroud)

这将输出 pip 上可用的所有版本,然后您可以将其重定向到字符串/列表并拆分版本,然后使用某种条件语句安装最小/最大支持版本之间的任何版本