官方倒计时:Python2的寿命还剩113天,逾期中止维护

做为目前 最为流行的编程语言,Python 的出现让计算机编程再也不是生僻的专业技能,而是常人都能学习和使用的万金油,它也是人工智能领域里最为经常使用的语言之一。不过在三个月内,Python 或许要经历史上最大的一次变化。

昨天,Python 官方网站的一纸声明《Python 2 的落幕》引起了人们的普遍讨论:该开发社区表示,官方对于 Python 2 的支持将会在 2020 年 1 月 1 日结束,在这以后即便是出现安全问题,旧版本的语言也不会获得任何改进。人们如今必须当即转移到 3.0 以上版本了。

目前,仍有一些开发者以志愿者的身份维护 Python2 语言。不过他们已共同决定,2020 年 1 月 1 日将是 Python2「生命终结」的那一天。该日以后,全部 Python2 相关的维护都将终止。html

为何 Python2 更新到 Python3 这么慢

不太了解编程的读者可能会有个疑问:老是提 Python3 比 Python2 好太多,为何仍是有人不更新呢?python

机器之心认为可能主要有如下几个缘由:

1. 工程稳定性相比软件的更新速度更为重要。编程

编程语言是构成软件的基石,编程语言若是发生了更新换代,软件的更新不是一件小事,须要全面地对全部代码进行更新。在这一过程当中,若是出现新旧版本不兼容、代码稳定性变差等状况,可能会影响到用户的持续使用。所以,对于一些版本迭代,不少软件开发者选择不更新。宁肯保证用户使用的稳定性,也不能急于更新到最新版本。
安全

2. Python 官方「容许」Python2 持续存在。
app

Python 官方在文档中也提到,大版本的更新有可能会「伤害」开发者。具体而言,若是在 2006 年就迅速要求开发者放弃 Python2,则不少开发者可能由于开发成本问题,直接放弃 Python。繁荣的开发者社区是维持 Python 编程语言地位的重要条件,所以官方一直在更新维护 Python2,让更多的开发者留存在社区中。
机器学习

3. Python2 确实也好用。
编程语言

虽然相比 Python3,Python2 存在不少大的问题,可是 Python2 依然也是一个开发者友好的 Python 版本,在 Python2 时期就有不少开源库支持了。所以,一些开发者但愿继续使用 Python2。
ide

这些缘由下来,Python3 取代 Python2 的进程就拖了十来年。不过,随着机器学习的发展,机器学习领域对编程语言的性能有很高的要求,且大部分新的工具都支持 Python3。所以,使用性能更好,有更多工具支持的 Python3 成为了开发者的必然选择。
工具

放弃支持 Python2 的软件列表
性能

2017 年,机器之心曾报道过将会放弃 Python2 的开源工具。目前,这一列表又长了不少。

TensorFlow、Scikit-learn、Pandas、XGBoost 等工具已经准备放弃 Python2。

同时中止支持的还包括 Numpy、Matplotlib、Jupyter Notebook 等。

还有不少如 Cython、IPython 在内的工具。

以上为已经放弃 Python2 的开源工具列表(不彻底统计)。从这个列表能够看到,Python 的生态系统是多么庞大。

下表显示了多个项目肯定中止支持 Python 2 的时间。从该表中能够得知每一个项目的某个版本是否支持 Python 二、发布时间线以及扩展支持的时间。(Python 本身的时间线:https://docs.python.org/devguide/#status-of-python-branches)

官方答疑

官方同时提供了一些相关的答疑,机器之心整理以下:

为何要终止 Python2?

答:终止 Python2 是由于咱们要更好地帮助开发者。

Python2 是 2000 年发布的。一些年以后,咱们意识到须要对 Python 进行一次大的更新升级。所以在 2006 年,咱们开始了 Python3 的开发工做。由于不少人在当时没有更新,而咱们也不但愿此次更新给他们形成损害,所以多年来咱们一直在维护并公开新的 Python2 和 Python3 版本。

可是这样一来,维护 Python 的工做变得很是困难。Python2 中有一些改进和维护是很难进行下去的。这会挤占咱们提高 Python3 速度和性能的精力。

并且,若是还有不少人继续使用 Python2,那些用 Python 开发程序的开源工做者工做起来会更困难。他们不能使用 Python3 中的新特性让开源工具变得更好用。

咱们不想伤害使用 Python2 的开发者,所以在 2008 年,咱们宣布 Python2 将在 2015 年终止,并但愿你们可以更新。当时,一些人更新了,可是还有一些人留在了 Python2 上,所以咱们将终止时间推后到了 2020 年。

目前 Python2 还有多久的寿命?

答:从 2019 年 9 月 10 日起算还有 3 个月 21 天。有一个倒计时,在 pythonclock.org (https://pythonclock.org/) 网站上。

机器之心在发稿时对倒计时网站的截图。

若是没有升级,会怎么样?

答:在终止日期到来后,即便用户发现了 Python2 上的灾难性安全问题,或者在 Python2 开发的软件中发现了这些问题,志愿者也不会帮助修复。若是用户须要 Python2 相关的软件协助,志愿者也不会提供帮助,而且愈来愈少的志愿者可以帮助到这些用户。同时,用户可能会失去使用优秀开源工具的机会,由于他们都是基于 Python3 开发的。同时,使用 Python2 的用户可能会拖慢其余使用 Python3 进行开发的人员的工做进度。

如何将 Python2 代码转为 Python3?

答:请参阅官方提供的指南。

指南地址:https://docs.python.org/3/howto/pyporting.html

若是用户基于 Python2 开发了一些软件,应该怎么作?

答:若是是从供应商那里购买的软件或软件支持,则详情可咨询他们;若是是从开发者或系统管理员那里付款得到的软件,则咨询这些开发者或管理员。若是两者均不是,则点击「Can I Use Python3?」页面查找升级到 Python3 所须要的工具。

caniusepython3 页面地址:https://pypi.org/project/caniusepython3/

是否有人员能够提供用户帮助?

答:是的。若是你付钱购买扩展支持,则与供应商联系。若是你能够付钱聘请一些人来帮助你,则能够在求职面板上发帖或直接聘请咨询人员。若是你须要志愿者提供免费帮助,则能够查看如下帮助页:https://www.python.org/about/help/。

用户直到如今才据说 Python2 升级事宜。在哪里宣布的升级通知?

答:咱们在软件会议、Python 通知邮件列表、Python 官方博客、相关参考书和技术文章、社交媒体以及与出售 Python 支持的公司都讨论过 Python2 的升级事宜。

用户怎样才能确保下次及时收到升级通知呢?

答:从供应商那里购买 Python 支持,或者订阅 Python 通知邮件列表。

订阅地址:https://mail.python.org/mailman3/lists/python-announce-list.python.org/

从答疑来看,Python2 会被完全抛弃。即便出现零日漏洞也不会有安全更新了,用户要抓紧升级,以避免出现安全问题而得不到技术支持。

转移需尽早

目前,获得良好维护的开源项目大多已经转移到 Python 3 上了。你能找到的 Python2 项目源码,基本都是比较早期再也不维护的项目,或是一些系统级项目(由于 Linux 和 MacOS 都自带 Python2.7)。根据 JetBrains 最新的 Python 开发者调查,大约 80% 开发者已在使用 3.5+ 版本。要知道在两年前,使用 Python 3 的比例还只有三分之一。

Python 早已经提供了 2 to 3 自动化工具,仅需一行命令就能够将 Python 2 代码转成 3。在 HackerNews 上,不少人对于 Python 2 支持的结束展开了讨论。

有网友表示:「Python 2 到 3(至少是 3.3 版本以上)是我作过最容易的过渡之一。咱们能够经过库(Six)的帮助来完成转移,在几乎全部的状况下你均可以编写 2 到 3 版本兼容的代码,这意味着转移能够以每次一小部分的形式进行。至于依赖项,开发者们也已帮助升级了不少第三方模块。」

总之,「若是人们用抱怨此事一半的精力去研究如何升级,转移到 3.x 版本的工做五年前就应该完成了。」根据经验,除非你的项目有很是罕见且不可替代的依赖项,或者庞大的 C 语言扩展,不然版本的转移会很容易。

相关文章
相关标签/搜索