如何获取版本名称中包含单词的最新 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.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 ...

【讨论】:

以上是关于如何获取版本名称中包含单词的最新 pip 包?的主要内容,如果未能解决你的问题,请参考以下文章

如何在Windows系统安装pygame

如何在 R 中导入文件名中包含特定单词的 .csv 文件?

在 Keras 中,如何获取与模型中包含的“模型”对象关联的图层名称?

如何知道 UITextView 中包含多少个单词

用户名包含Twitter API使用Java中的特定单词

在行中包含大图像时,如何使 IE 11 尊重表格中的列宽?