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

发布于 2024-12-25 13:20:15 字数 409 浏览 0 评论 0 原文

我想知道是否有任何方法可以告诉 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 行。

有什么办法可以做到这一点吗?

I'm wondering if there's any way to tell pip, specifically in a requirements file, to install a package with both a minimum version (pip install package>=0.2) and a maximum version which should never be installed (theoretical api: pip install package<0.3).

I ask because I am using a third party library that's in active development. I'd like my pip requirements file to specify that it should always install the most recent minor release of the 0.5.x branch, but I don't want pip to ever try to install any newer major versions (like 0.6.x) since the API is different. This is important because even though the 0.6.x branch is available, the devs are still releasing patches and bugfixes to the 0.5.x branch, so I don't want to use a static package==0.5.9 line in my requirements file.

Is there any way to do that?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

葬シ愛 2025-01-01 13:20:15

您可以这样做:

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

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

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

You can do:

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

And pip will look for the best match, assuming the version is at least 0.2, and less than 0.3.

This also applies to pip requirements files. See the full details on version specifiers in PEP 440.

我不咬妳我踢妳 2025-01-01 13:20:15

一种优雅的方法是根据 ~= 兼容释放运算符rel="noreferrer">PEP 440。在您的情况下,这相当于:

package~=0.5.0

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

  • 0.5.0
  • 0.5.9 code>
  • 0.6.0

为了澄清起见,一对中的每两行是等效的:

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

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

An elegant method would be to use the ~= compatible release operator according to PEP 440. In your case this would amount to:

package~=0.5.0

As an example, if the following versions exist, it would choose 0.5.9:

  • 0.5.0
  • 0.5.9
  • 0.6.0

For clarification, each two lines in a pair are equivalent:

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

~= 0.5
>= 0.5, == 0.*
尐偏执 2025-01-01 13:20:15

您还可以使用:

pip install package==0.5.*

更加一致且易于阅读。

you can also use:

pip install package==0.5.*

which is more consistent and easy to read.

半夏半凉 2025-01-01 13:20:15

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

输入图像描述这里

与问题相关:nok.github.io/pipdev?spec=~=0.5.0&vers=0.6

nok.github.io/pipdev is an interactive tool for developers to test defined specifiers for version handling.

enter image description here

Related to the question: nok.github.io/pipdev?spec=~=0.5.0&vers=0.6

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文