在 Python 3.9 都已经进入 dev 版本的 2020 年,Python 2 终于要和我们告别了。

2 and 3

Python 2 第一个版本发布于 2000 年 10 月 16 日,到今年正好是第 20 个年头。而 Python 3 发布于 2008 年 12 月 3 日,但由于 3.0 版本在底层进行了大量重构(主要是 Unicode 与 C API 的改动),无法完整兼容 Python 2,因此官方并没有停止对 Python 2 的维护。

从此 2 与 3 依然都在发布新版本,官方想通过平滑的方式过渡到新版本。然而并不是所有的社区贡献者有这种精力去同时维护两个版本,许多开源库它们至今都停更在 2.X 版本。

两版本共存的日子,一晃就是 11 年。

2 to 3

好在 Python 3 更新了越来越多独有的特性与性能优化,加上社区的不断努力推动,在近几年爆发增长的初学者当中,大部分都被推荐使用了 3.X 版本作为入门版本,3 版本在近几年才占据了主导。

终于 Python 核心开发团队对外宣布,将在 2020 年逐步停止对 Python 2 的支持,但并没有给出具体时间。

2017 年 NumPy 正式宣布将在 2019 年 1 月 1 日停止支持 Python 2。之后 pandas 与 Jupyter notebook 等开发团队纷纷宣布即将停止支持 2.X 版本。

2018 年 Python 创始人 Guido van Rossum 在官方邮件组表示,他们将于 2020 年 1 月 1 日停止对 Python 2.7 的支持,这也是 2.X 最后一个版本。

他在邮件写道:

不要玩文字游戏了!Python 2.7 的 EOL(停用)日期是 2020 年 1 月 1 日,接下来,将不会有任何更新,也不会再有源码安全补丁。在此日期之后,Python 核心开发者、PSF 和 python.org 将不会提供任何支持。如果你还想获得支持,那得付相关商业费用。当然,它是开源的,所以我们也欢迎大家 fork。
我们最初决定 2015 年为 EOL 日期,然后推迟到 2020 年,给大家的时间已经很充足了,核心开发者也辛苦太久了。此外,坦诚地说,我并不觉得停用 Python 2.7 是件坏事。

After 3

不过停止更新并不会有多大的影响,因为根据 JetBrains 最新的 Python 开发者报告显示,近九成的开发者已经使用 Python 3 版本。

相信在 2020 年使用 Python 2 的开发者将低于 5%。

如果你有代码想迁移 Python 3,别忘了尝试使用官方提供的 2to3 迁移工具。

另外 3.9 版本已经有 dev 版本了,留给 Python 3 的版本号也到头了(除非使用两位数),后续 Python 怎么走,咱们拭目以待。

最后祝各位读者新年快乐!


本文属于原创,首发于微信公众号「面向人生编程」,如需转载请后台留言。

关注后回复以下信息获取更多资源
回复【资料】获取 Python / Java 等学习资源
回复【插件】获取爬虫常用的 Chrome 插件
回复【知乎】获取最新知乎模拟登录

Python 2 与 3 共存了 11 年,新年就要和它道别的更多相关文章

  1. Python linux多版本共存以及虚拟环境管理(转摘)

    Python linux多版本共存以及虚拟环境管理 2017年08月01日 18:42:25 sliderSun 阅读数:197更多 个人分类: python   版权声明:本文为博主原创文章,未经博 ...

  2. Python的平凡之路(11)

    一. rabbitmq 1 进程Queue:  父进程与子进程进行交互,或者同属于同一父进程下多个子进程进行交互 2 队列通信:   send1.py #!/usr/bin/env python#Au ...

  3. Windows 下让 Python 多个版本共存(支持 pip)

    转载自 http://blog.kgzx.net/index.php/archives/40/ 因为类库兼容性的关系,写实际项目时都是用 Python 2,但自己试验性的写点小东西还是喜欢用 Pyth ...

  4. Python练习-循环及切片-2018.11.27

    #直接用while循环去除.ad l=['xuyutao.ad','wangjun.ad','liuchao.ad','liuyan1.ad'] n=0 L=[] while n < 4: A= ...

  5. Python/Anaconda多版本共存的解决方案

    博客中的文章均为 meelo 原创,请务必以链接形式注明 本文地址 虽然Python2大势已去,众多项目都已经支持Python3,但总有一些教程和项目只支持Python2.通常情况是计算机里既装着Py ...

  6. 安装python File "/usr/bin/pip", line 11, in <module> sys.exit(main()) File "/usr/lib/python3.4/site-packages/pip/__init__.py", line 215, in main locale.setlocale(locale.LC_ALL, '') File "/u

      $ uname -a Linux debian 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt11-1+deb8u6 (2015-11-09) x86_64 GNU ...

  7. python基础-python解释器多版本共存-变量-常量

    一.编程语言的发展史 机器语言-->汇编语言-->高级语言,学习难度及执行效率由高到低,开发效率由低到高 机器语言:二进制编程,0101 汇编语言:用英文字符来代替0101编程 高级语言: ...

  8. python之最强王者(11)——异常(exception)

    1.Python 异常处理 python提供了两个非常重要的功能来处理python程序在运行中出现的异常和错误.你可以使用该功能来调试python程序. 异常处理: 本站Python教程会具体介绍. ...

  9. python参考手册--第10、11章执行环境、调试

    1.解释器选项和环境 python [options] [-c cmd | filename | - ] [args] 例如:python -m pdb test.py 以脚本的形式运行库模块pdb ...

随机推荐

  1. DOCKSWARM服务网络原理

    如图所示,我们将在 swarm 集群中部署 “client” 服务 和 “vote” 服务,其中 “vote” 服务部署多个副本. 客户端请求 “vote” 服务时,输出结果中包含服务端的容器 ID, ...

  2. Spring学习(十)

    需要的jar包 1.Spring核心必须依赖的库:commons-logging-1.1.1.jar2.Spring IoC部分核心库: spring-beans-4.3.9.RELEASE.jar ...

  3. java获取当前机器的公网ip

    package com.Interface.util; import javax.servlet.http.HttpServletRequest; /** * 测试类 * * @author 华文 * ...

  4. lc 0228

    目录 ✅ 412. Fizz Buzz 描述 解答 c数字转字符: other's c my c tdo py ✅ 235. 二叉搜索树的最近公共祖先 描述 解答 评价者 思路: c py ✅ 412 ...

  5. 关于数据库中的三值逻辑(Tree-Value-Logic)

    在sql中,逻辑表达式(也叫做谓词),可以有三种值:True.False.Unknown,这就是所谓的三值逻辑,,是sql的特有属性. 在大多数编程语言中,逻辑表达式只有两个值,就是True和Fals ...

  6. AF(操作者框架)系列(1)-LabVIEW中的模块化应用概述

    一.引子 在前面对LabVIEW介绍的文章中,关于框架开发的内容涉及很少.为了讲解操作者框架(Actor Framework)的优缺点,也只是拿出来QDSM(Queue-Driven State Ma ...

  7. Ajax案例

      展示页面jsp: <%@ page language="java" contentType="text/html; charset=utf-8" pa ...

  8. 「JSOI2011」棒棒糖

    「JSOI2011」棒棒糖 传送门 双倍经验 考虑主席树做法. 对于当前的主席树节点,如果 \(\le mid\) 的个数足够就往左边走,否则就尝试往右边走,都不行就返回 \(0\). 参考代码: # ...

  9. jquery-ajax的用法

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  10. MRCP接口MRCPRecog 简介

    功能:开始一个语音识别,一边讲话,一边识别,需要ASR服务器. 原型:MRCPRecog (grammar, options) grammar ---- 语法文件,可以是一个xml文件 options ...