python - 如何安装依赖项的最低版本
问题描述
问题
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
.
不过,这种针对一个人的最小依赖集进行测试的问题的解决方案感觉很混乱。有没有人也找到了一个好的解决方案?
解决方案
不是完整的答案,但可能会帮助您入门...
pip install pkg_name_here==
这将输出 pip 上可用的所有版本,然后您可以将其重定向到字符串/列表并拆分版本,然后使用某种条件语句安装介于最小/最大支持版本之间的任何版本
推荐阅读
- laravel - 可以自动加载或 livereload npm run dev
- python-3.x - 如何在 K 最近邻中选择正确的 k 值
- r - 如何使用 ggplot2、gridExtra 对齐和缩放不同尺寸的图?
- angular - 如何使用 Firebase 托管为已部署的 Angular Web 应用记录错误
- php - 如何通过将文本框值附加到 PHP 中的 URL 来提交表单?
- angular5 - Angular 5 无法创建简单的项目
- azure - Azure 功能无法识别云存储和队列类
- ruby-on-rails - 复选框说即使未选中,该值也始终为一?
- javascript - 在 Angular 中滚动到(单击)上的特定 div
- reactjs - 无限滚动 Meteor 订阅而不是 onClick