即将放弃Python 2.7的不止有Numpy,还有pandas和这些工具

本文经机器之心(微信公众号:almosthuman2014)授权转载,禁止二次转载

最近,Numpy 团队的一份声明引发了数据科学社区的关注:这一科学计算库即将放弃对 Python 2.7 的支持,全面转向 Python 3。由于目前存在很多基于 Numpy 的深度学习依赖库,该决定意味着所有在此之上的工具都将失去对于 Python 2.7 的支持。Numpy 并不是唯一宣称即将放弃 Python 旧版本支持的工具,经开发者整理发现,pandas 与 Jupyter notebook 也在即将放弃支持的名单之中。

Numpy 的声明

Python 核心团队计划在 2020 年停止支持 Python 2。NumPy 自 2010 年以来同时并行支持 Python 2 和 Python 3,但是由于资源有限,支持 Python 2 变成了一个日渐加重的负担;因此,我们计划最终停止支持 Python 2。现在我们进入了社区支持的 Python 2 的最后几年,NumPy 想要说明我们的计划,并以帮助我们的下游生态制定计划,尽可能顺利地实现过渡为目标。

我们的当前计划如下:

2018 年 12 月 31 日之前,NumPy 所有版本仍将全面支持 Python 2 和 Python 3。2019 年 1 月 1 日开始,所有新功能版本将仅支持 Python 3。支持 Python 2 的最后版本将被指定为长期支持版本(LTS),即我们将继续修复 bug,对 bug 修复版本的支持时间较长。具体讲,社区将支持它到 2019 年 12 月 31 号。

2020 年 1 月 1 日,我们将向 Python 2 致敬,最后 Python 2 支持版本的社区支持将会结束。但是,你仍可在 PyPI 上无限期地使用它。如果任何商业供应商希望延长 LTS 支持时间,我们可以让其使用官方 NumPy 库中的 LTS 分支来做协调。

如果你是一名在 2020 年或以后仍需 Python 2 支持的 NumPy 用户,那么请联系你的供应商。如果你是供应商,想要在 2020 年以后继续支持 Python 2 上的 NumPy,请联系我们。理想情况下,我们希望你在 LTS 结束之前参与维护,以便顺利实现过渡。

Python 团队的声明

Python 科学栈中的所有主要项目现在都支持 Python 3.x 和 Python 2.7,很多项目已经支持这两种版本很多年。尽管我们不断开发用于高效维护兼容性的工具和技术,但是在大量代码开发中这仍然是虽然微小但经常出现的冲突。

我们希望充分使用 Python 3,目前接受交叉兼容代码以实现顺利过渡,但是我们不打算无限期维护该兼容性。尽管从 Python 2 到 Python 3 的过渡不像我们希望的那么快,但是它的确发生了,越来越多的人使用、教授和推荐 Python 3。

由于很多人仍然使用 Python 2,Python 语言的开发者将 Python 2.7 的支持期扩展为 2015 到 2020。我们认为这 5 年足够用户从 Python 2 中迁移出来,我们的项目计划最迟在 2020 年底停止支持 Python 2。之后,我们能够简化代码,充分利用 Python 语言和标准库当前版本的很多新功能。

此外,2020 年之前,我们的一些项目将减少对 Python 2.7 的支持,只修复 bug,新功能版本则使用 Python 3。这和 Python 语言本身的支持相匹配,Python 2.7 版本仅包括修复 bug 和安全提升。

第三方可能对我们的旧 Python 版本项目提供付费支持,时间长于我们对旧 Python 版本的支持。我们不会阻止这类行为,这是免费、开源软件的核心原则,因此这种行为是可行的。但是,如果你想要免费的第一方支持,请开始迁移到 Python 3 吧。

出于以上原因,下列项目将在 2020 年停止支持 Python 2.7,与 Python 开发团队对此的时间线一致。

即将放弃支持 Python 2.x 的工具

以下项目已经明确表示将在 2020 年以前放弃对于 Python 2 的支持。

下表显示了多个项目确定停止支持 Python 2 的时间。从该表中可以得知每个项目的哪个版本是否支持 Python 2、发布时间线,以及扩展支持的时间。

Python 自己的时间线:https://docs.python.org/devguide/#status-of-python-branches

Python 2 的消失将使许多学界工具成为孤儿,很多已公布的结果将变得不可复现。尽管将现有项目移植到 Python 3 上是可能的,但这意味着大量的时间和资金需求。

参考内容:

http://www.python3statement.org/#sections30-projects

https://github.com/numpy/numpy/blob/master/doc/neps/dropping-python2.7-proposal.rst

END

投稿和反馈请发邮件至hzzy@hzbook.com。转载大数据公众号文章,请向原文作者申请授权,否则产生的任何版权纠纷与大数据无关。

原文发布于微信公众号 - 大数据(hzdashuju)

原文发表时间:2017-12-11

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏杨建荣的学习笔记

MySQL里的一些分布式方案

首先数据库是一个软件,最基础的功能就是数据存储和数据查询。对于数据的处理方式如果通泛来说是分为读和写,所以分布式方案的很多场景其实也是围绕着这两个维度来做的。

17310
来自专栏Java架构师进阶

怎么从初、中级Java程序员过渡到高级Java程序员?

原文地址:https://www.toutiao.com/i6599524702937416195/

14810
来自专栏机器之心

即将放弃Python 2.7的不止有Numpy,还有pandas和这些工具

392130
来自专栏云计算D1net

云计算的安全问题将引起企业的重视

28060
来自专栏云计算D1net

公有云服务选择八大评测标准

说到选择一家公有云提供商,成本往往是首要因素。但是虚拟机迁移、存储和自动扩展等其他因素也应该加以考虑。 随着许多企业组织迁移到公有云或混合云,它们免不了要选择一...

45560
来自专栏Rainbond开源「容器云平台」

当我们谈论监控时,我们在谈论什么?

16440
来自专栏YoungGy

MMD_1b_PageRank

Graph data web graph history challenges and thumb flow formulation idea model si...

23270
来自专栏数据小魔方

数据地图系列13|PowerBI

今天要跟大家分享数据地图系列的第13篇——PowerBI。 PowerBI是微软公司数据可视化系列集成的桌面端产品。(上一篇讲了个PowerMap,那个是Pow...

47760
来自专栏JAVA高级架构

微服务和传统服务架构

单块架构应用:功能集中,代码和数据中心化,一个发布包部署后运行在同一个进程中的应用程序 单块架构的优势: 1)易于开发 2)易于测试 3)易于部署 4)易于水平...

42380
来自专栏喵了个咪的博客空间

IOT设备通讯协议MQTT

哈喽大家好呀!笔者的公司最近在做IOT设备相关的业务,基于这个契机寻找学习了一下关于IOT通讯协议相关的内容,最终在技术选型上选择了使用MQTT协议并且结合EM...

52840

扫码关注云+社区

领取腾讯云代金券