开发者请注意:Python2 的最后版本将于 4 月发布,但它确实是在 1 月 1 日就寿命终止了!

2020 年 1 月 1 日是 Python2 的寿命终止日,这个日期在两年前经"Python之父" Guido van Rossum 宣布,此后一直成为开发者社区翘首以盼的一天。

昨天就是这个大快人心的日子,各种变了花样的喜庆报道不绝于目。调侃的玩笑也不少,比如这个:

还有这个(别信!):

然而,我今天偶然看到一位大佬的疑问,大意如下:官网发布的 Python2 退休日期说是 4 月,那个倒计时网站是不是冒充的官方消息?

他所说的官网消息是这篇——

怎么回事呢?传了那么久的元旦退休消息,竟然会不准确?那么多人在热热闹闹地庆祝着,竟然是在庆祝一个假消息么?

我搜索那篇文章,仔细读了一遍,然后才注意到发布日期是 2019 年 12 月 20 日,也就是两周前。文中没有提到 1 月 1 日,也没提 4 月的具体日子。

文章属实,但日期明显矛盾,这是怎么回事呢?官方应该会有所解释吧?带着疑问,我去翻看官方和几个核心开发者的推特。

经过一番资料查阅,我终于搞清楚了怎么回事,也找到了所谓的"官方解释"。

简单说明结论:2020-01-01 是板上钉钉的 Python2 的 EOL (end of life,寿命终止)日子,但是在这个日子前的版本发布周期还在进行,最后一个版本按计划是在今年 4 月的 Pycon US 大会上发布。

Python2.7 在 2019 年的最后一个版本是 10 月 19 日发布的 2.7.17 版本,在它之后直到2020-01-01 之间产生的所有问题,开发者们是接受的,而计划合入的版本将是 4 月 17 日的 2.7.18 版本。

以篮球比赛中的压哨球来类比,你就明白怎么回事了:球离手在空中飞了三分之一路程,这时终止的哨声吹响,最后这球中袋了当然还是有效的。

进行了三分之一的 2.7.18 版本,就像离手之球,离弦之箭,泼出之水,负责任的 Python 官方还是要认可它的。

其实,这个决定并不是最近确定的,早在 2019 年 9 月,Python2 的版本经理 Benjamin Peterson 就公布了这个计划,这里是当时的邮件组截图:

有不少开发者表示了疑义:为什么不能把 4 月的发布计划提前呢?如果是 4 月发布最后版本,为什么不说 4 月才是 EOL 呢?为什么容许出现两个不一致的日期?

根据我对讨论内容的理解,主要有如下原因:

  • 12 月末不是一个方便的“工作”时间(因为感恩节放假!)
  • 4 月有一年一度的社区大会,届时大家可以集体宣泄
  • Python 1 的最后版本(1.6.1)已经有此先例

有不少开发者也表示附议,认可这个安排。详细的讨论过程在:https://dwz.cn/ECmB3cZo

如果 PSF 在发布那篇“4 月退休”的文章时,对此安排作出解释,也许大家就不会有那么多困惑了,更不至于怀疑自己在传播假消息……

看到这,你也应该理解了来龙去脉吧?不过,我相信还是有读者有疑问:既然早就知道会有这个尾巴要处理,为什么不能加快进度,多投精力,争取一分不差地在 2019-12-31 发布最后一个版本呢?

追进度、赶 deadline、加班加点,这种事情在国内互联网领域是司空见惯了。然而,Python 核心开发者们几乎都是志愿者,花的是业余兴趣时间,他们的主业可能都不至于 996,怎么能指望在副业上 996 呢?!不要强人所难!

最后,不管怎么说,Python2 确实是在 2010-01-01 就 EOL 了,此后自生自灭。

它的最后一个版本会在 4 月份发布(只包含 1 月 1 日前的问题),我们不用着急,就让这只球飞一会吧,等到球落袋的时候,我们再一起,举杯相庆!

公众号【Python猫】, 本号连载优质的系列文章,有喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等等,欢迎关注哦。

原文地址:https://www.cnblogs.com/pythonista/p/12142690.html

时间: 2024-08-28 10:25:15

开发者请注意:Python2 的最后版本将于 4 月发布,但它确实是在 1 月 1 日就寿命终止了!的相关文章

CentOS6系升级Python2.7的版本

安装前准备 本实例以centos6.7为例 [[email protected] tools]# uname -r 2.6.32-431.23.3.el6.x86_64 [[email protected] tools]# uname -m x86_64 [[email protected] ~]# python -V Python 2.6.6 内核版本2.6.32 64位操作系统 安装前先装readline-devel,不装"上下左右建"等无法使用 yum -y install re

uwsgi的python2+3多版本共存

1.首先,机器需要有python2和python3的可执行环境.确保pip和pip3命令可用.原理就是在哪个环境下安装uwsgi.uwsgi启动的时候,就用的哪个python版本2.安装virtualenv环境管理工具3.创建python2和python3的虚拟环境4.进入python2虚拟环境5.进入python3虚拟环境**常规发布应用的时候.可以编写shell脚本执行相应的命令启动即可,如下 原文地址:http://blog.51cto.com/leizhu/2065394

VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK

VS2017新建或拷贝项目编译时出现:找不到 Windows SDK 版本8.1.请安装所需的版本的 Windows SDK 或者在项目属性页的问题解决方案 解决方法: 右击项目解决方案, 选择:重定解决方案目标. 提示框中,选择SDK版本后点击确定. 原文地址:https://www.cnblogs.com/ming-4/p/11736187.html

InstallShield集成安装MSDE2000最小版本(三) fishout特许授权发布

原文:InstallShield集成安装MSDE2000最小版本(三) fishout特许授权发布 原帖地址:http://blog.csdn.net/fishout/archive/2009/11/09/4790564.aspx 在这一节里,我们讨论如何在安装目录的任意指定基础上实现实例名及sa密码的更改,这样,就继承了原有微软80多兆安装包的功能,但是,现有的安装包体积小多了,仅有原来的1/6,当然,这仅是全新安装而言,对于升级安装是不适应的,不过,实际上我们大多数时候都是使用全新安装,何况

什么版本测试通过就能发布?

问题的另外一个问法: 如何称呼提交正式测试的软件版本?这个版本如果后续测试通过的话,就能直接发布,但是在提交测试的时候,不知道测试是否通过. 发布候选版?正式测试版?相对的,如何称呼就算测试通过也不能发布的版本(比如因为部分特性未完工)?非正式测试版?提前测试版? 回答1:release candidate是一个常用的叫法. from @stephen_wang_7971 关联回答1.1:Release Candidate(RC,候选发布版), Release to Manufacture(RT

InstallShield集成安装MSDE2000最小版本(二) fishout特许授权发布

原文:InstallShield集成安装MSDE2000最小版本(二) fishout特许授权发布 原帖地址:http://blog.csdn.net/fishout/archive/2009/10/28/4739269.aspx 在这一节里,我们解决安装路径的更改问题.大家知道,MSDE2000安装后,数据库路径不能更改,这也是制约许多安装包无法与应用程序一并集成的首要原因,现在我们来解决这一个问题. 主要思路是通过分离msdb和model数据库,然后更改master数据库的系统目录指向,改为

InstallShield集成安装MSDE2000最小版本(一) fishout特许授权发布

原文:InstallShield集成安装MSDE2000最小版本(一) fishout特许授权发布 原帖地址:http://blog.csdn.net/fishout/archive/2009/10/26/4730086.aspx 在网上看到许多关于MSDE2000集成到应用程序中一并安装的文章,这些方法无一例外都使用了InstallShield中调用外部命令的方式,其本质就是在安装过程中调用LaunchAppAndWait函数执行MSDE2000的setup.exe程序,这样一来,带来几个问题

python3 与 python2 的多版本共存(Linux)

python3已经出来有些许时候了,python3相比python2进行了大量的改进,包括语法,新的功能,还有优化.虽然很多库已经同时支持 python2和python3了,但是有些库仍然没有很好的支持python3,因此有时我们还是需要使用python2. 博主是在去年开始学python的,作为没有历史包袱的初学者,当时自然而然的选则了python3来进行学习,但是在安装了新的python3后,新安装的python3不可避免的与系统自带的python2产生了一些冲突.包括不同版本的调用,不同版

linux下python2.7.x版本安装

1.查看默认Python版本 python -V 2. 下载源码包,wget https://www.python.org/ftp/python/2.7.11/Python-2.7.11.tgz 3.(如果需要)安装gcc,用于编译Python源码 yum install gcc 4. 编译安装 tar zvxf Python-2.7.11.tgz cd Python-2.7.11 ./configure    (默认安装在/usr/local/lib/python2.7) make all &