在私有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是我们要发布的版本)
答案 0 :(得分:0)
遵循命名约定explained here,您应该使用版本控制架构,其中v.v.v
用于生产,v.v.v.devN
用于预发布/开发版本,例如1.0.0
和1.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 ...