在 2020 年 1 月 1 日生命周期结束后,PIP 是不是适用于 python 2.7
Posted
技术标签:
【中文标题】在 2020 年 1 月 1 日生命周期结束后,PIP 是不是适用于 python 2.7【英文标题】:Will PIP work for python 2.7 after its End of Life on 1st Jan 2020在 2020 年 1 月 1 日生命周期结束后,PIP 是否适用于 python 2.7 【发布时间】:2019-07-21 18:14:11 【问题描述】:如
所述,Python 2.7 将于 2020 年 1 月 1 日结束生命周期https://legacy.python.org/dev/peps/pep-0373/
https://pythonclock.org/
当前pip
会在该日期之后继续为 python 2.7 工作吗?它已经显示了弃用 python 2.7 的消息。我们能跑吗
pip install abc==1.2.3
在那个日期之后?
我们明白,在 EOL 之后,不会对 2.7 进行新的修复/支持,所以这不是这里的问题。
这个问题源于即使在 EOL 之后仍继续在 python 2.7 上运行的愿望。
【问题讨论】:
【参考方案1】:是的,python2.7 的 Pip 是 Ubuntu 18 的一部分,该版本于 2028 年 4 月停产。 Ubuntu 非常擅长维护他们的发行版。
然后,到 2028 年 4 月,很可能会开发和维护一种新的兼容 Python2.7 的语言,它将支持 pip
或类似的东西。将添加某种编译器挂钩以将str
更改回字节字符串并使print
上的括号可选。或者,也许我们会切换到Cython
或 Python2.7 的其他一些实现。但不要担心这几年(除非你有很多空闲时间)。
【讨论】:
【参考方案2】:您需要确保您拥有适用于 Python 2.7 的正确版本的 pip
:
pip install --upgrade "pip < 21.0"
该版本将运行一段时间。它们迟早会失败,因为 PyPI 主机将 SSL 配置更改为 Python 2.7 无法处理的配置。但我相信我们还有几年的时间。
为保持与 Python 2.7 兼容的重要工具的一些额外版本限制:
pip install --upgrade "setuptools < 45" "Sphinx < 2.0" "pytest < 5.0"
如果您使用其他工具,请彻底遵循他们的公告,以发现他们停止支持 2.7。
【讨论】:
嗯...我认为问题是目前不支持 Python 是的。许多项目已经宣布他们现在完全停止支持 Python 2.7,甚至在 2020-01-01 之前。 我指的是你指出的 SSL 问题,建议坚持使用旧版本的 pip for -- github.com/pypa/pip/issues/4350。【参考方案3】:是的。不过,Python 2 支持将处于“社区维护”状态。关心它的人将不得不加紧解决问题——pip 维护者可能不会致力于解决 Python 2 问题。我们在以下位置记录了确切的期望:
https://pip.pypa.io/en/stable/development/release-process/#python-2-support
请注意,pip 维护者是志愿者,就我个人而言,我对为那些即使在十年后仍停留在 EOL'ed Python 上的公司/组织做免费工作不感兴趣。
【讨论】:
更新:pip 21.0 放弃了对 Python 2 的支持。我们不希望做出会破坏旧 pip 版本的更改。 “EOL'ed Python”是一种幻想。我不确定 Python 基金会如何认为他们会让 Ubuntu 在发行版 EOL 之前 EOL 成为核心系统组件。 RedHat Enterprise Linux 7 维护支持将持续到 2024 年 6 月 30 日,并且延长的生命周期支持会在此之后持续 2 年,因此在计划的 12 年支持周期中间让 Python 支持消失不方便。 @kbro -- 你可能会发现curiousefficiency.org/posts/2015/04/… 值得一读。 :) 只有上游是 EOL。发行版可以使用自己的 python 包做任何他们想做的事情。维护现在是他们的责任。以上是关于在 2020 年 1 月 1 日生命周期结束后,PIP 是不是适用于 python 2.7的主要内容,如果未能解决你的问题,请参考以下文章