我有一些开发人员希望能够将库发布为“测试版”或“发布版”。
即:
1.2.3-beta
1.2.3
在消费项目上,他们不能给我任何具体的标准,说明他们何时想要使用 beta
或 release
包。我们有 CI,但没有任何明确的“何时”我不能支持两个单独的 pip 提要,因为它们可能会翻转。所以我建议利用需求文件中的版本范围语法,这样他们就可以在 checkin 期间指定他们想要的内容。他们从来没有做过这样的事情,我基本上是一个 python 菜鸟。是否可以过滤预发布标签?即
lib == 1.*.*-*
会选择一个 beta
包吗?
和
lib == 1.*.*, !=1.*.*-*
会选择一个 release
包并确保排除任何 beta
包?
我会自己尝试我的理论,但我对 python 的了解还不够深,无法在本地模拟某种示例库,而且他们太忙了,无暇研究它。
最佳答案
默认 pip
不会安装 prereleases ,比如 1.0.0.b1
要启用预发布安装,您可以使用 --pre
用 pip
标记。
您还可以使用预发布版本说明符强制 pip
考虑单独包的预发布,而无需使用 --pre
。来自 https://pip.pypa.io/en/stable/reference/pip_install/#pre-release-versions :
If a Requirement specifier includes a pre-release or development version (e.g.
>=0.0.dev0
) then pip will allow pre-release and development versions for that requirement.
因此,在您的 requirements.txt
文件中,您将拥有如下内容:
package_a>=1.2.3 # will not install pre-releases
package_b>=1.2.3.dev0 # will install pre-releaes
关于python - pip 依赖项可以排除或包含在语义预发布标签中吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62765000/