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

时间:2016-01-27 18:36:55

标签: pip version versioning

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

该软件包具有QA和prod版本,由v.v.v.prod和v.v.v.qa区分,其中v是major,minor和micro。

我如何获得包含qa或prod最新版本的软件包? 为了给出上下文,有一个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是我们要发布的版本)

1 个答案:

答案 0 :(得分:0)

遵循命名约定explained here,您应该使用版本控制架构,其中v.v.v用于生产,v.v.v.devN用于预发布/开发版本,例如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 ...