我想知道是否有任何方法可以告诉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
行。
有没有办法做到这一点?
答案 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.*