大家都知道,Python2 是 Python 官方在 2000 年开源的 Python 新版本,由于自身原因导致 Python 官方几年内就推出了新的 Python3。出于保护开源社区的初衷,官方并没有强迫开发者升级,并继续给予 Python2 更新维护,因此 Python2 就一直活到了今年。
自从官方宣布 2020 年 1 月后不再更新维护 Python2,已经有一大批开源软件将其抛弃。今天,抛弃 Python2 的名单上又多了一个重磅软件。
眼看留在 Python2 的开发者不太可能继续更新,Python 官方终于发了大招,他们宣布:2020 年 1 月起不再维护 Python2。大量开源软件,如 Numpy、Pandas 等都宣布放弃 Python2,但是只有 PyTorch 官方没有表态。近日,他们的开发工程师在论坛上透露:我们也不再支持 Python2 了。
PyTorch 的官方维护者表示,他们不会再支持 Python2,声明全文如下:
现在几乎所有主要的开源 Python 包都支持 Python 3.x 和 Python 2.7 版本,并且很多项目几年前就已经支持这两个版本的 Python 语言了。虽然我们已经开发了相应的工具和技术来有效地维护版本之间的兼容性,但在开发大量代码的过程中依然不断出现一些小问题。
所以,我们希望充分发挥 Python 3 的应用潜能,并且现在依然允许用户编写兼容两个版本的代码,以实现平稳的过渡。但是,我们并不打算无限期地维护版本兼容性。虽然向 Python 3 的过渡并不如我们所预期的那样快速,但越来越多的用户开始使用、讲授和推荐 Python 3 了。
虽然 Python 3 早已在 2008 年开源,但 Python 语言的开发者意识到依然有很多用户使用 Python 2,所以从 2015 年开始他们扩展了对 Python 2.7 的支持。我们相信多留给用户的这 5 年足以顺利地完成向 Python 3 的过渡,并且将在 2020 年 1 月 1 日之后停止对 Python 2 的支持。之后,我们将简化代码,充分利用 Python 3 版本和标准库的诸多新功能。
此外,需要注意的是,2020 年之前,我们的很多项目将不再支持 Python 2.7,仅支持 bug 修复,并且所有的新功能只有 Python 3 才支持。目前,一些 PyTorch 项目已经完成了向 Python 3 的过渡。
第三方或许可以对 Python 旧版本上的项目提供更长时间的付费支持。我们不会加以干涉,因为这种做法符合自由和开源软件的核心原则。但是,如果你希望享受对 Scientific Python 堆栈等众多项目的免费和第一方支持,请着手开始将自己的项目转移到 Python 3。
基于以上这些原因,我们决定在 2020 年 1 月 1 日之后停止对 Python 2.7 的支持,从而与 Python 开发团队放弃支持 Python 2.7 的时间线保持一致。
延伸阅读:续命多年的 Python2
Python2 是 2000 年推出的 Python 版本,但是官方表示他们发现了一些问题,于是在 2006 年开始了 Python3 的开发工作,如果 Python3 能够向下兼容,或者干脆强硬一点让 Python2 退场,也许就没有今天这么多麻烦事情了。
然而不巧的是,当时有大量的开源软件和开发者在使用 Python2,它因其 Python 灵活友好的属性,根植在了大大小小的程序和框架中,贸然迫使开发者放弃 Python2 无疑会让整个开源社区大受打击,甚至造成开发者流失的问题。甚至连 OSX 系统自带的 Python 版本都是 Python2 的。于是,双轨制的 Python2 和 Python3 开始了,Python 社区俨然分成了两派。
原本官方打算在 2015 年下决心移除 Python2,但是似乎没有什么用处,依然有很多开发者,甚至是深度学习框架都在使用 Python2。因而停止维护的时间也就一拖再拖,直到 2020 年官方终于表示要停止维护了。
参考链接:https://discuss.pytorch.org/t/dropping-python-2-support-on-january-1st-2020/56730