如何安装指定最小和最大版本范围的包?
我想知道有没有办法在要求文件中告诉pip,安装一个包时要指定最低版本(比如说 pip install package>=0.2
),同时还要设置一个最高版本,确保这个版本不会被安装(理论上的用法是 pip install package<0.3
)。
我之所以问这个,是因为我在使用一个正在积极开发的第三方库。我希望我的pip要求文件能指定总是安装0.5.x版本系列中最新的小版本,但我又不想让pip尝试安装任何更新的大版本(比如0.6.x),因为它们的接口是不同的。这一点很重要,因为虽然0.6.x版本已经发布,开发者们仍然在对0.5.x版本进行修补和修复,所以我不想在我的要求文件中使用一个固定的 package==0.5.9
行。
有没有办法做到这一点呢?
4 个回答
182
你还可以使用:
pip install package==0.5.*
这样写会更统一,也更容易阅读。
193
一种优雅的方法是使用 ~=
这个兼容版本操作符,具体可以参考 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.*