Python pip依赖项是否可以排除或包含在语义预发布标签中?

Python pip依赖项是否可以排除或包含在语义预发布标签中?,python,pip,pypi,python-packaging,requirements.txt,Python,Pip,Pypi,Python Packaging,Requirements.txt,我有一些开发人员希望能够将库发布为“beta”或“release”版本 i、 e: 1.2.3-beta版 1.2.3 在消费项目上,他们不能给我任何具体的标准,说明他们什么时候想要使用beta或release软件包。我们有CI,但没有任何确定的“何时”,我无法支持两个单独的pip提要,因为它们可能会发生翻转。所以我建议利用需求文件中的版本范围语法,这样他们就可以在签入时指定他们想要的内容。他们从来没有做过这样的事情,我基本上是python新手。是否可以在预发布标签上进行过滤?即 lib==1.

我有一些开发人员希望能够将库发布为“beta”或“release”版本

i、 e:

1.2.3-beta版
1.2.3

在消费项目上,他们不能给我任何具体的标准,说明他们什么时候想要使用
beta
release
软件包。我们有CI,但没有任何确定的“何时”,我无法支持两个单独的pip提要,因为它们可能会发生翻转。所以我建议利用需求文件中的版本范围语法,这样他们就可以在签入时指定他们想要的内容。他们从来没有做过这样的事情,我基本上是python新手。是否可以在预发布标签上进行过滤?即

lib==1.*-*
会选择一个
beta
包吗

Will
lib==1.*.*=1.*-*
选择一个
发行版
软件包,并确保排除任何
测试版
软件包


我想自己尝试一下我的理论,但我对python了解不够,无法在本地模拟某种示例库,而且他们太忙了,无法对其进行研究。

默认情况下
pip
不会安装,比如
1.0.0.b1

要启用预发行版的安装,请使用带有
pip
的标志

还可以使用PrimelLoad版本说明符强制<代码> PIP <代码>考虑单个包的预处理,而不需要使用<代码> -PRE> <代码>。发件人:

如果需求说明符包括预发布或开发版本(例如,
=0.0.dev0
),则pip将允许该需求的预发布和开发版本

因此,在您的
requirements.txt
文件中,您会有如下内容:

package_a>=1.2.3       # will not install pre-releases
package_b>=1.2.3.dev0  # will install pre-releaes 

这很好,但考虑到这是自动化实现的,我觉得他们每次想使用预发布标签包时,都会添加或删除--pre标志,这会…让他们烦恼吗?如果我一直都启用了--pre标志,有没有一种方法可以使用需求版本语法来排除或包含预发布标签?我只是希望他们只需要与他们的需求文件交互,这样他们就可以有意识地、深思熟虑地决定在一个地方消费什么样的lib。