微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Python 打包多次发布后指定python版本要求

如何解决Python 打包多次发布后指定python版本要求

我在 pypi 上发布了一个包,版本为 3.0.0。

setup.py 从未提及 python_requires 指令。

在 2.5.0 版中发生了一个变化,导致包与 python 2 不兼容,直到现在才被注意到。

从 2.5.0 开始,在 pypi 上发布了大量软件包。

现在,如果我想使用 python2 安装包 - pip 将安装最新的 3.0.0 版本,但它不起作用。

我需要 pip 来安装 2.4.0 版 - 没有兼容性问题。但我究竟如何才能做到这一点? (无需事先了解 pip install package==2.4.0 - 类似于使用 pip 的回溯机制)

如果我在 3.1.0 版中指定指令 python_requires=">=3.6",pip 将回溯到 3.0.0 版安装包,这将不起作用。

我能想到:

  1. cx_Oracle way。如果最小版本与安装所需的版本不匹配并指定如何安装正确的版本,则在 setup.py 中引发异常。

  2. 创建 2 个新版本。一种,本质上 2.4.0 版本为 3.1.0,带有 python_requires=">=2.7,<3.6",另一种是 3.0.0 版本为 3.1.1,带有 python_requires=">=3.6"

有更好的方法吗?

解决方法

PyPI 有一个相对较新的功能:您可以“猛拉”与 Python 2 不兼容但未在元数据中正确指定的版本。

被移除的版本是一个总是被安装程序忽略的版本,除非它是唯一与版本说明符匹配的版本(使用 =====)。

有关详细信息,请参阅 PEP 592 -- Adding "Yank" Support to the Simple API。事实上,您所描述的是 PEP 的 motivation 部分中描述的主要场景。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。