如何获取版本名称中包含单词的最新 pip 包?

How to get latest pip package containing a word in the version name?

在私有 pip 存储库中有一个名为 'test_package' 的包。

该软件包有一个 QA 和一个产品版本,由 v.v.v.prod 和 v.v.v.qa 区分,其中 v 是主要的、次要的和微观的。

我如何获得最新版本的质量检查或生产包? 为了提供上下文,有一个 docker 作业每次运行时都会拉取最新的包,它需要拉取 qa 或 prod。

更好的方法是使用两个包 'test_package_qa' 和 'test_package_prod' 吗?如果这是更好的方法,有没有办法通过 pip 命令复制一个包并将其重命名为另一个包? (例如 test_package_qa-1.0.1 并将其复制到 test_package_prod-1.0.0,其中 test_package_qa 最新版本可能是 1.1.0,但 1.0.1 是我们要发布的版本)

遵循命名约定 explained here,您应该使用版本控制模式,使用 v.v.v 进行生产,使用 v.v.v.devN 进行 pre-release/development 版本,例如1.0.01.0.1.dev0.

pip 将只安装最新的生产版本,除非您使用 --pre 参数或尝试明确安装此版本。

我通过设置本地存储库验证了这一点,我的包名为 foobar-utils。在存储库中有 3 个版本:

foobar_utils-0.1.0.dev1
foobar_utils-0.1.0
foobar_utils-0.1.1.dev1

pip install 命令:

# install latest production version
$ pip install foobar-utils
... Downloading foobar_utils-0.1.0-py2.py3-none-any.whl ...

# install latest pre-release
$ pip install --pre foobar-utils
... Downloading foobar_utils-0.1.1.dev1-py2.py3-none-any.whl ...

# install a pre-release by specifying version
$ pip install "foobar-utils>=0.1.1.dev1"
... Downloading foobar_utils-0.1.1.dev1-py2.py3-none-any.whl ...