对python 2.7的支持终止了吗?


133

当不再支持python 2.7而不再支持python 2.7时,是否存在已知的日期/时间框架?


8
一个公平的问题,就是没有重复,我找不到。
Matt Joiner

2
这个问题似乎
不切实际,

1
我能找到的最好的概览是这个表格:docs.python.org/devguide/#status-of-python-branches
6

截止到2018年初,更详细地规定了停滞日期:现在是2020年1月1日。当将更改为“ python”的发行版指向“ python3”时,这是一个更为开放的问题。
ESR

Answers:


109

自2014年4月13日起,来自http://hg.python.org/peps/rev/76d43e52d978(PEP 373,Python 2.7发布时间表):

Python 2.7的终止生命日期(停产日期,终止日期)已移至未来五年,即2020年。此决定旨在阐明Python 2.7的状态,并减轻那些尚无法迁移到Python 3的用户的后顾之忧。另请参阅PEP 466


23
@Basic除了没有漏洞。
Stian OK 2015年

5
@StianOK它得到了应有的份额:cvedetails.com/vulnerability-list/vendor_id-10210/…–
基本的

14
@Basic welll ...份额很小:在所有python版本中占25(4%代码执行):cvedetails.com/product/18230/Python-Python.html?vendor_id=10210 vs php with 408(27%代码执行) ):cvedetails.com/product/128/PHP-PHP.html?vendor_id=74或Java(438(执行代码占3%)):cvedetails.com/product/19117/Oracle-JRE.html?vendor_id=93 ...因此,“公平份额”一定意味着“非常低的份额”。此外,除了3个漏洞以外,所有这些漏洞在3.x版本中都存在漏洞,并且所有最新版本均已修复。
dhj

2
@Basic您对安全性基线有更好的建议吗?
dhj

2
@dhj是的...不是Java!好吧,那是不公平的。除了开玩笑/轻浮,诚实的答案是不,我不是。这就是为什么我选择“公平分享”。没有一种语言没有已知(和未知)漏洞。我想说,一般来说,一种语言使用得越广泛,存在的漏洞就越多,这纯粹是作为对使用/从利用中获得回报的仔细审查的函数。从安全的角度来看,我并不是说Python比其他语言更糟糕,但这也不是更好。唯一真正的答案是防御性编程并拥有深度安全性。
基本



15

您应该仔细阅读以下内容(参考:https : //news.ycombinator.com/item ? id =7582300):

这里没有来自python-dev列表的人有很多评论,他们并不真正理解这种差异的实际含义。核心开发人员无需维持2015年后的2.7,并且大多数人不会参与其中。那部分没有改变。发生的事情是Red Hat准备削减RHEL 7发行版,AFAIK取决于您为他们支付13年支持的费用。因此,他们将需要弄清楚如何至少在2027年之前自己获得2.7的支持。RH完全有权利分叉Python,并为自己和客户保留维护补丁(Python不是copyleft)。但,他们是好人,因此,如果仍有Python项目愿意接受这些更改,也许他们愿意至少暂时进行更改。再次,这是我基于ML讨论的推测,而不是RH实​​际上说过的。可以比喻Rails LTS,它是patio11参与[0]的Rails 2.x的商业分支。不可避免地会有人介入以支持2.7,所以让我们看看如何避免出现这样的情况,即保持2.7唯一运行的唯一方法是订阅RHEL。同时,有一些大公司在Windows上广泛使用2.7(例如Enthought,Anaconda),并且认为可以找到某个人偶尔制作Windows安装程序,前提是假定Python.org仍将托管下载。因此,实际上发生的事情不是很令人兴奋。核心提交者所做的工作与将项目按原计划进行一样没有什么不同。发生的情况是,它们将使源代码控制存储库和FTP服务器中的指示灯保持打开状态,以便捕获有兴趣继续支持2.7的大公司员工的免费劳动力。另一种选择是,RH和其他供应商创建专有且昂贵的Python 2.7分支。无论如何,这种情况最终可能会发生,但是如果二进制文件仍然出现在python.org上,并且您不必要求IT部门设置SCM和错误跟踪器,那么雇主将需要更长的时间才能注意到您应该停止提供补丁。等等 发生的情况是,它们将使源代码控制存储库和FTP服务器中的指示灯保持打开状态,以便捕获有兴趣继续支持2.7的大公司员工的免费劳动力。另一种选择是,RH和其他供应商创建专有且昂贵的Python 2.7分支。无论如何,这种情况最终可能会发生,但是如果二进制文件仍然出现在python.org上,并且您不必要求IT部门设置SCM和错误跟踪器,那么雇主将需要更长的时间才能注意到您应该停止提供补丁。等等 发生的情况是,它们将使源代码控制存储库和FTP服务器中的指示灯保持打开状态,以便捕获有兴趣继续支持2.7的大公司员工的免费劳动力。另一种选择是,RH和其他供应商创建专有且昂贵的Python 2.7分支。无论如何,这种情况最终可能会发生,但是如果二进制文件仍然出现在python.org上,并且您不必要求IT部门设置SCM和错误跟踪器,那么雇主将需要更长的时间才能注意到您应该停止提供补丁。等等


10

本文说:“当2.7发布时,2.x系列将进入五年的仅漏洞修复模式。”

因此,据我所知,Python 2.7是最后一个添加2.x功能的版本,尽管发现的错误将被修复(一段时间),但新功能仅适用于3.x版本。


3
那篇文章还声称Python 3引入了Unicode,所以我会不加言表。但是将“五年”更改为“至少五年”是正确的。
Lennart Regebro


6

PEP 373(Python 2.7发布时间表)是您要求的那种信息的正式来源。

当前显示“计划的未来发布日期:”

  • 2014年5月2.7.7
  • 2.7.8 2014年11月
  • 2015年5月2.7.9
  • 在此日期之后,根据需要发布

另外,它说:“ Python 2.7的生命终止日期(停产日期,日落日期)已经移到了五年后的2020年。”

根据http://hg.python.org/peps/rev/76d43e52d978在2014年4月编辑


终于解脱了!希望到那时python 3会死掉,或者重命名为morella之类的东西来避免混乱。
lowtech

2
@lowtech-那时他们可能已经转向了Python 4(可能引入了新的向后不兼容的更改),但是我不认为3会消失。根据过去3年中3的普及速度,我预计到2020年,使用3的社区将比2的人多。我仍然坚持使用Python 2,但是...尚不足以进行令人信服的更改跳转到3.我从进口的风险,未来有很多,虽然。
ArtOfWarfare 2014年

6

《 Python开发人员指南》列出了从2.6版到当前版本的“ Python分支的状态 ”,包括其当前支持状态以及生命周期终止日期。

当前受支持(错误+安全修复):

  • Python 3.8(当前的master / develop分支)
  • Python 3.7
  • Python 3.6
  • Python 2.7(直到2020-01-01)

仅安全修复程序:

  • Python 3.5
  • Python 3.4

1

Python 2.7将会永远存在。有太多使用它的旧代码,没有人愿意重写。已经有一个名为Tauthon的分支,但是如果这个毫无意义的截止日期成为现实,我们可能还会看到其他人。


2
对于EOL产品而言,这不是“毫无意义的”,而是关于资源分配的。当然,由于它是开源的,因此它将以当前形式永远存在。但是它将不再受支持。至少由官方维护者提供。我不太确定您在这里回答什么问题。
deceze

用户询问对Python2.7的支持将持续多长时间。用户没有询问官方维护者的支持。在这样的项目中,实际上有很多行代码,非维护人员将定期进行定期更新,向后移植,并永远对Python2提供良好的支持。(我对整个Python3的事情感到沮丧,这让我感到无所适从,因此“毫无意义”)。
最多

我觉得这句话很重要。Tauthon与Python 2.7相同,并且似乎将受到一段时间的支持。因此,值得一提。
Phil

我的经验是,年轻的程序员不了解保证向后兼容性所带来的功能和效率。我永远不会理解范·罗森(Guo van Rossum)的决定,即故意破坏兼容性而不带来任何好处(无论是性能还是可读性),从而造成超过数万小时的浪费生命。
马克斯

1
@Tetragrammaton:请解释为什么不兼容是一件好事。请说明“基本缺陷”将是什么。我已经全职使用Python超过15年了,但我看不出与我相关的重大差异。C保持40年不变,仍然是一种主要语言,并没有太大变化。这些年来,Javascript取得了极大的进步,但仍然向后兼容。C ++仍与C向后兼容。Windows10仍可以运行Windows 3程序。从70年代开始,我们的CPU仍然运行8086代码。我们每天都在进步,而不会中断支持。
最多
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.