如何获取版本名称中包含单词的最新 pip 包?
Posted
技术标签:
【中文标题】如何获取版本名称中包含单词的最新 pip 包?【英文标题】:How to get latest pip package containing a word in the version name? 【发布时间】:2016-05-04 21:04:42 【问题描述】:在私有 pip 存储库中有一个名为“test_package”的包。
该软件包有一个 QA 和一个 prod 版本,由 v.v.v.prod 和 v.v.v.qa 区分,其中 v 是主要、次要和微。
我如何获得最新版本的 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,但我们要发布到 prod 的版本是 1.0.1)
【问题讨论】:
【参考方案1】:遵循命名约定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 ...
【讨论】:
以上是关于如何获取版本名称中包含单词的最新 pip 包?的主要内容,如果未能解决你的问题,请参考以下文章