如何安装具有最小和最大版本范围的软件包?

时间:2012-01-09 21:44:42

标签: python pip multiple-versions

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

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

有没有办法做到这一点?

3 个答案:

答案 0 :(得分:228)

你可以这样做:

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

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

这也适用于pip requirements files。请参阅PEP 440中的版本说明符的完整详细信息。

答案 1 :(得分:47)

你也可以使用:

pip install package==0.5.*

更加一致且易于阅读。

答案 2 :(得分:35)

一种优雅的方法是根据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.*