当前位置: 首页 > 后端技术 > Python

开发人员注意事项:Python2的最终版本将在4月发布,但它确实在1月1日结束了生命周期!

时间:2023-03-26 17:49:52 Python

2020年1月1日是Python2的生命终结日期。这个日期是“Python之父”GuidovanRossum在两年前宣布的,也是开发者社区一直期待的一天自从。昨天是个喜庆的日子,各种形式的庆祝活动的报道层出不穷。笑话很多,比如这个:还有这个(不信!):不过今天正好看到一个大佬的提问。是假官方消息吗?他说的官网新闻就是这篇文章——这是怎么回事?传了这么久的元旦退役消息,居然不准确?这么多人热闹庆祝,难道是在庆祝假新闻?我搜索了那篇文章,仔细阅读,然后注意到发表日期是2019年12月20日,也就是两周前。没有提到1月1日,也没有提到4月的某一天。文章是真的,但是日期明显自相矛盾,这是怎么回事?官方应该有解释吧?带着疑惑,我去查看了官方和几位核心开发者的推特。经过一番研究,终于弄明白是怎么回事了,也找到了所谓的“官方解释”。简单说明一下结论:2020-01-01是Python2的EOL(endoflife,生命终结)日是肯定的,但是这个日期之前版本的发布周期还在继续,排在最后一个版本今年4月参加Pycon。在美国国会发布。2019年最后一个Python2.7版本是10月19日发布的2.7.17版本。之后,2020-01-01之间发生的所有问题都被开发者接受,计划整合发布的版本为4月17日的2.7.18版本。拿篮球比赛中的蜂鸣器来类比,你就明白是怎么回事了:球从你手里飞到空中三分之一处,这时候终场哨响了,球进袋了结束了,当然还是有效的。2.7.18版本已经进行了三分之一,就像手中的球,弦上的箭,水倒出来一样,负责的Python官方还是要认的。事实上,这个决定并不是最近才做出的。早在2019年9月,Python2的版本经理BenjaminPeterson就宣布了这一计划。那一个月的发布时间表呢?如果最终版本在四月发布,为什么不说四月是EOL?为什么允许两个不一致的日期?从我读到的讨论来看,主要有几个原因:12月底不是一个方便的“工作”时间(因为感恩节放假了!)而且4月份有一年一度的社区会议,在那里你可以集体发泄一下Python1的最终版本(1.6.1)已经有这样的先例,很多开发者也表示支持和认可这样的安排。详细的讨论过程在这里:https://dwz.cn/ECmB3cZo如果PSF在发表《四月退休》一文时说明了这个安排,或许大家就不会这么糊涂了,更不会怀疑我在散播假消息了。..看到这里,你应该也明白来龙去脉了吧?不过,相信还是有读者有疑问:既然已经知道会有这个尾巴需要处理,为什么不能加快进度,投入更多的精力,争取在2019年发布最后一个版本——12-31?追进度、赶deadline、加班,这种事情在国内互联网领域司空见惯。但是,Python核心开发者几乎都是志愿者,都是利用业余时间。他们的主业未必是996,副业怎么能指望996呢?!不要勉强别人难!最后,无论如何,Python2确实在2010年1月1日停产了,从那以后它就顺其自然了。最后一期4月出(1月1日前只发),大家别着急,让这球飞一会儿,等球进袋,我们一起庆祝!公众号【Python猫】,本号连载系列精品文章,包括喵星哲学猫系列、Python进阶系列、好书推荐系列、技术写作、优质英文推荐与翻译等,欢迎收看注意。