You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何修改requirements/common.txt,使pip install自动安装包的最新版本?

如何让pip install自动安装requirements中指定大版本的最新包?

当然可以!你只需要调整common.txt里的版本约束写法,就能让pip install自动帮团队成员安装指定大版本下的最新包,不用每个人手动加--upgrade参数。

具体修改方案

把原来的:

django-simple-captcha==0.5.*

改成以下两种写法之一:

写法1:使用兼容版本运算符(推荐)

django-simple-captcha~=0.5

这个写法等价于>=0.5,<0.6,会告诉pip只在0.5.x的大版本范围内寻找最新版本,写法更简洁。

写法2:明确版本范围

django-simple-captcha>=0.5,<0.6

效果和上面的兼容运算符完全一致,适合需要精细控制版本下限的场景(比如你要限定0.5.2及以上的话,可以写成>=0.5.2,<0.6)。

为什么原来的写法不行?

当你用==0.5.*时,pip的默认逻辑是"只要已安装的版本满足这个范围,就不做任何更新"。因为0.5.3确实符合0.5.*的要求,所以pip不会主动去检查同范围内有没有更新的版本。

而换成~=0.5或者>=0.5,<0.6后,pip会明确知道你需要这个范围内的最新可用版本,执行pip install -r requirements\common.txt时,它会自动对比本地已安装版本和PyPI上的最新版本,如果本地版本更旧,就会自动升级到最新的0.5.x版本。

额外注意事项

  • 这个方法适用于所有需要固定大版本、自动升级小版本的包,你可以把其他类似需求的包都改成这种写法。
  • 如果团队里有人不小心安装了0.6.x及以上的版本,这种写法会让pip自动降级到0.5.x的最新版,所以要确保团队成员都清楚版本范围的约定,避免不必要的版本冲突。
  • 如果你需要强制安装某个精确版本,还是可以用==x.x.x的写法,但如果是要同大版本最新,就用上述的范围约束。

内容的提问来源于stack exchange,提问作者Hamed Salimian

火山引擎 最新活动