对 python 2.7 的支持结束了吗?
Posted
技术标签:
【中文标题】对 python 2.7 的支持结束了吗?【英文标题】:End of support for python 2.7? 【发布时间】:2011-06-17 16:58:40 【问题描述】:是否有一个已知的日期/时间范围,python 2.7 将不再受支持而支持 python 3?
【问题讨论】:
一个公平的问题,只要没有重复,我找不到。 这个问题似乎是题外话,因为它是关于语言版本的支持 我能找到的最好的概览是这张表:docs.python.org/devguide/#status-of-python-branches 截至 2018 年初,截止日期已经更准确地指定:现在是 2020 年 1 月 1 日。何时将“python”更改为指向“python3”的分布是一个更开放的问题。跨度> ***.com/a/58401685/5025009 【参考方案1】:截至 2014 年 4 月 13 日,来自 http://hg.python.org/peps/rev/76d43e52d978(PEP 373,Python 2.7 发布时间表):
Python 2.7 的生命周期结束日期(EOL,日落日期)已被移动 五年后,到 2020 年。这个决定是为了 明确 Python 2.7 的状态,为那些用户解除后顾之忧 谁还不能迁移到 Python 3。另请参阅 PEP 466。
【讨论】:
@Basic 除了没有漏洞。 @StianOK 它得到了应有的份额:cvedetails.com/vulnerability-list/vendor_id-10210/… @Basic welll... 这个份额非常小:所有 python 版本中 25 个(4% 代码执行):cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 vs php 408(27% 代码执行):cvedetails.com/product/128/PHP-PHP.html?vendor_id=74 或Java with 438 (3% code exec): cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ...所以“它的公平份额”你一定是指“非常低的份额”。此外,除了 3 个漏洞之外,所有这些漏洞都存在于 3.x 版本中的漏洞中,并且所有最新版本均已修复。 @Basic 您对安全基线有更好的建议吗? @dhj 是的...不是 Java!好吧,这不公平。除了开玩笑/轻率之外,诚实的答案是否定的,我没有。这就是我选择“公平分享”的原因。没有一种语言没有已知(和未知)的漏洞。我想说,作为一般规则,我们使用的语言越广泛,存在的漏洞就越多,这纯粹是作为审查的功能,也就是利用/利用的回报。从安全的角度来看,我并不是说 Python 比其他语言差,但它也没有更好。唯一真正的答案是进行防御性编程并具有深度安全性。【参考方案2】:2010 年 5 月,Word of God 是 patchlevel releases for Python 2.7 will probably be made for at least 6 years。
所以,也许是 2016 年,也许更晚。
编辑:推迟到 2020 年。请参阅 PEP 373 的修订版,链接到其他答案。
【讨论】:
对于将来找到此答案的任何人,正如 BDFL 本人在 PyCon 2014 上宣布的那样,2.7 维护现在延长到 2020 年。【参考方案3】:最近,该日期已更新为 2020 年 1 月 1 日。
见https://pythonclock.org/
【讨论】:
【参考方案4】:您应该仔细阅读此内容(参考:https://news.ycombinator.com/item?id=7582300):
这里有很多 cmets 来自那些不在 python-dev 列表中并且并不真正理解这个差异的真正含义的人。 核心开发人员不需要维护 2015 后的 2.7,他们中的大多数人也不会参与其中。那部分没有改变。 正在发生的事情是 Red Hat 正准备削减 RHEL 7 版本,AFAIK 取决于你支付了多少他们支持 13 年。所以他们需要弄清楚如何至少在 2027 年之前自己支持 2.7。 这是我在字里行间阅读的地方。 RH 完全有权分叉 Python 并将维护补丁保留给他们自己和他们的客户(Python 不是 copyleft)。但是,他们是好人,所以如果仍有 Python 项目愿意接受他们,他们可能愿意至少在一段时间内将他们的更改上游化。同样,这是我基于 ML 讨论的推测,而不是 RH 实际上说他们会做什么。 可以类比 Rails LTS,它是 Rails 2.x 的商业分支,天井 11 参与了 [0]。不可避免地会有人介入支持 2.7,所以让我们看看我们能做些什么来避免继续运行 2.7 的唯一方法是订阅 RHEL 的情况。 同时,有一些大公司在 Windows 上广泛使用 2.7(例如 Enthought、Anaconda),他们认为可能会偶尔找到有人制作 Windows 安装程序,假设 Python.org 仍将托管下载。 所以这里发生的事情真的不是很令人兴奋。核心提交者所做的事情与按原计划离开项目没有什么不同。正在发生的事情是,他们将在源代码控制存储库和 FTP 服务器上保持亮灯状态,以便从有兴趣继续支持 2.7 的大公司中获取免费劳动力。 另一种选择是 RH 和其他供应商创建了 Python 2.7 的专有且昂贵的分支。无论如何,这可能最终会发生,但是如果二进制文件仍然出现在 python.org 上并且您不必要求 IT 设置 SCM 和错误跟踪器,您的雇主将需要更长的时间才能注意到您应该停止提供您的补丁程序,等等
【讨论】:
【参考方案5】:This article 说:“当 2.7 发布时,2.x 行将进入五年的仅修复错误模式。”
所以,据我所知,Python 2.7 是最后一个添加 2.x 功能的版本,虽然发现的错误将被修复(一段时间),但新功能仅适用于 3.x 版本。
【讨论】:
那篇文章还声称 Python 3 引入了 Unicode,所以我会对它所说的一切持保留态度。但是把“五年”改成“至少五年”就对了。【参考方案6】:对于 2020 年的 EOS,还有一个相当不祥的 countdown 时钟。
【讨论】:
【参考方案7】:PEP 373 (Python 2.7 Release Schedule) 是您所要求的信息的官方来源。
目前显示“计划的未来发布日期:”
2014 年 5 月 2.7.7 日 2014 年 11 月 2.7.8 日 2015 年 5 月 2.7.9 日 在此日期之后,根据需要发布此外,它还说 “Python 2.7 的生命周期结束日期(EOL,日落日期)已移至未来五年,即 2020 年。”
2014年4月编辑,据http://hg.python.org/peps/rev/76d43e52d978
【讨论】:
多么宽慰啊!希望到那时 python 3 会死掉或重命名为类似莫雷拉的东西以防止混淆。 @lowtech - 到那时他们可能已经转向 Python 4(可能引入了新的向后不兼容的更改),但我不希望 3 消失。根据过去几年 3 的普及速度有多快,我预计到 2020 年社区使用 3 的人数将超过 2。不过,我仍然坚持使用 Python 2……没有足够引人注目的改变跳到 3 的风险。不过,我从 future 导入了很多东西。【参考方案8】:Python 开发人员指南列出了从 2.6 版到当前版本的“Status of Python branches”,包括它们当前的支持状态和终止日期。
目前支持(错误 + 安全修复):
Python 3.8(当前主/开发分支) Python 3.7 Python 3.6 Python 2.7(直到 2020-01-01)仅安全修复:
Python 3.5 Python 3.4【讨论】:
【参考方案9】:Python 2.7 将永远存在。使用它的旧代码太多,没人愿意重写。已经有一个名为 Tauthon 的分叉,但如果这个毫无意义的截止日期成为现实,我们可能会看到其他分叉。
【讨论】:
EOL 产品不是“毫无意义”,而是资源分配。当然,由于它是开源的,它会以目前的形式永远存在。但它不会再支持了。至少官方维护者是这样。我不确定你在这里回答什么问题。 用户询问Python2.7支持多久。用户没有询问官方维护者的支持。对于像这样的项目,有这么多行代码,实际上,非维护人员将永远定期更新、向后移植和对 Python2 的良好支持。 (我个人对这整个 Python3 的事情感到沮丧,因此“毫无意义”)。 我觉得这条评论是相关的。 Tauthon 与 Python 2.7 相同,并且似乎会在一段时间内得到支持。所以,值得一提。 我的经验是,年轻的程序员不了解保证向后兼容性所带来的力量和效率。我永远不会理解 Guide van Rossum 会故意破坏兼容性而没有任何好处(无论是性能还是可读性),从而造成伤害的决定,超过数万小时的生命浪费。 @Tetragrammaton:请解释为什么不兼容是件好事。请解释“根本缺陷”是什么。我已经全职使用 Python 超过 15 年,我看不出与我相关的主要区别。 C 保持不变 40 年,仍然是一门主要语言,并没有太大变化。多年来,javascript 得到了极大的改进,并且仍然向后兼容。 C++ 仍然向后兼容 C。Windows 10 仍然可以运行 Windows 3 程序。我们的 CPU 仍然运行 70 年代的 8086 代码。我们每天都在进步,不会中断支持。以上是关于对 python 2.7 的支持结束了吗?的主要内容,如果未能解决你的问题,请参考以下文章
当我在 mac 上安装了 python 3.5 时,终端运行 python 2.7。
用逗号结束 python 2.7 打印语句在 tmux 中不起作用吗?