如何pip安装一个包与最小和最大版本范围?

我想知道是否有任何方法告诉pip,特别是在需求文件中,安装一个同时具有最小版本(pip install package>=0.2)和不应该安装的最大版本(理论api: pip install package<0.3)的包。

我问这个问题是因为我正在使用一个正在积极开发中的第三方库。我希望我的pip需求文件指定它应该始终安装0.5的最新小版本。但是我不希望pip尝试安装任何更新的主要版本(如0.6.x),因为API是不同的。这很重要,因为即使0.6。X分支是可用的,开发人员仍然发布补丁和错误修复到0.5。所以我不想在我的需求文件中使用静态package==0.5.9行。

有什么办法可以做到吗?

190106 次浏览

你可以:

$ pip install "package>=0.2,<0.3"

并且pip将寻找最佳匹配,假设版本至少是0.2,小于0.3。

这也适用于pip 需求文件。请参阅PEP 440中版本说明符的详细信息。

你还可以使用:

pip install package==0.5.*

更一致,更容易阅读。

一个优雅的方法是根据PEP 440使用~=兼容的释放操作符。在你的情况下,这相当于:

package~=0.5.0

例如,如果存在以下版本,它将选择0.5.9:

  • 0.5.0
  • 0.5.9
  • 0.6.0

为了澄清,每对都是等效的:

~= 0.5.0
>= 0.5.0, == 0.5.*


~= 0.5
>= 0.5, == 0.*

nok.github.io / pipdev是一个供开发人员测试定义的版本处理说明符的交互式工具。

enter image description here

与问题相关:nok.github.io / pipdev ?规范= ~ = 0.5.0&更= 0.6