最近,Numpy 团队的一份声明引起了数据科学社区的关注:这一科学计算库即将放弃对 Python 2.7 的支持,全面转向 Python 3。因为目前存在不少基于 Numpy 的深度学习依赖库,该决定意味着全部在此之上的工具都将失去对于 Python 2.7 的支持。Numpy 并非惟一宣称即将放弃 Python 旧版本支持的工具,经开发者整理发现,pandas 与 Jupyter notebook 也在即将放弃支持的名单之中。
Numpy 的声明python
Python 核心团队计划在 2020 年中止支持 Python 2。NumPy 自 2010 年以来同时并行支持 Python 2 和 Python 3,可是因为资源有限,支持 Python 2 变成了一个日渐加剧的负担;所以,咱们计划最终中止支持 Python 2。如今咱们进入了社区支持的 Python 2 的最后几年,NumPy 想要说明咱们的计划,并以帮助咱们的下游生态制定计划,尽量顺利地实现过渡为目标。git
咱们的当前计划以下:github
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 分支来作协调。python2.7
若是你是一名在 2020 年或之后仍需 Python 2 支持的 NumPy 用户,那么请联系你的供应商。若是你是供应商,想要在 2020 年之后继续支持 Python 2 上的 NumPy,请联系咱们。理想状况下,咱们但愿你在 LTS 结束以前参与维护,以便顺利实现过渡。ide
Python 团队的声明工具
Python 科学栈中的全部主要项目如今都支持 Python 3.x 和 Python 2.7,不少项目已经支持这两种版本不少年。尽管咱们不断开发用于高效维护兼容性的工具和技术,可是在大量代码开发中这仍然是虽然微小但常常出现的冲突。学习
咱们但愿充分使用 Python 3,目前接受交叉兼容代码以实现顺利过渡,可是咱们不打算无限期维护该兼容性。尽管从 Python 2 到 Python 3 的过渡不像咱们但愿的那么快,可是它的确发生了,愈来愈多的人使用、教授和推荐 Python 3。ui
因为不少人仍然使用 Python 2,Python 语言的开发者将 Python 2.7 的支持期扩展为 2015 到 2020。咱们认为这 5 年足够用户从 Python 2 中迁移出来,咱们的项目计划最迟在 2020 年末中止支持 Python 2。以后,咱们可以简化代码,充分利用 Python 语言和标准库当前版本的不少新功能。cdn
此外,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 二、发布时间线,以及扩展支持的时间。
Python 本身的时间线:Python Developer’s Guide
Python 2 的消失将使许多学界工具成为孤儿,不少已公布的结果将变得不可复现。尽管将现有项目移植到 Python 3 上是可能的,但这意味着大量的时间和资金需求。
参考内容:
Sunsetting Python 2 support in scientific Python projects
机器之心报道