V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
chinesehuazhou
V2EX  ›  Python

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

  •  
  •   chinesehuazhou · 2020-01-02 23:43:36 +08:00 · 2764 次点击
    这是一个创建于 1575 天前的主题,其中的信息可能已经有所发展或是发生改变。

    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://mail.python.org/archives/list/[email protected]/thread/APWHFYQDKNVYQAK3HZMBGQIZHAVRHCV2/#N6JIGTTJCJHS47AYSI76SJPCQS25EBWR

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

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

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

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

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

    msg7086
        1
    msg7086  
       2020-01-03 06:30:25 +08:00
    反正 RHEL 和 Debian 还会继续维护 Python2 到 2024 年的,一点不慌。
    MeteorCat
        2
    MeteorCat  
       2020-01-03 08:54:24 +08:00 via Android
    话说,我在 Centos8 之中配置的 mongodb4.2 源,默认会给我 Python2 的依赖,这个咋去除,我不想手动编译直接想依赖官方源更新
    raysonlu
        3
    raysonlu  
       2020-01-03 10:03:20 +08:00
    the bill is death
    julyclyde
        4
    julyclyde  
       2020-01-03 10:19:54 +08:00
    革命不彻底=彻底不革命
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   我们的愿景   ·   实用小工具   ·   5411 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 27ms · UTC 07:54 · PVG 15:54 · LAX 00:54 · JFK 03:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.