首页 > 解决方案 > 如何安装依赖项的最低版本

问题描述

问题

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.

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

标签: pythonpipintegration-testingdependency-management

解决方案


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

pip install pkg_name_here==

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


推荐阅读