官方最后通牒:Python2传奇20年将落幕,Python 3接力!

2023-10-29 09:10

本文主要是介绍官方最后通牒:Python2传奇20年将落幕,Python 3接力!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

 编辑:鹏飞  |  来源:新智元

【导读】一代传奇Python 2落幕,将于3个半月后(2020年元旦当天)停止维护,被Python 3全面取代。这意味着目前还在使用Python 2的大量用户,将面临两种选择:要么继续使用,未来不再得到任何安全更新、bug修复;要么冒险升级到Python 3。

终于,Python官方发出了最后通牒!

Python官方非常正式的在官网上发表一封公开信,再次强调Python 2将于2020年元旦停止维护!之后,官方将不会再对任何bug、安全漏洞进行任何更新或者修复。这就意味着,如果你还想继续使用Python 2,再碰到问题就只能自己想办法了。

640?wx_fmt=jpeg

此文一出,再次在圈内掀起了一波热潮。当然,这并不意味着到时候Python 2就不能用了!所以Python官方也用了“垂暮”而非“关停”来定义,也是非常有画面感了。

作为一个5年前就“应该”退役的老版本,Python 2诞生于2000年,如今已走过生命中的第二十个年头!

这二十年来,Python 2见证了Python从默默无闻到超越Perl、C++等,和Java、C三足鼎立,成为世界上使用人数最多、上升最快的语言之一。可以说,Python 2是铸就Python辉煌的最大功臣!

640?wx_fmt=png

如果你不想错过这历史性的一刻,记得关注Python 2落日倒计时:

https://pythonclock.org/

640?wx_fmt=png

Python 2是遗产;Python 3是未来!

Python 2虽是一代名将,但这个传奇的语言版本因为年代久远,不可避免的有一些和时代脱节的缺陷。比如Python 2的默认编码是asscii、字符串的问题、1/2(两个整数相除)结果是0等等。

Python的开发者很快就意识到了其中的问题,于是早早就着手进化版的研发,并于8年后(也就是2008年)正式推出了Python 3。官方曾乐观的预计在2015年左右,让Python 3全面取代Python 2。

640?wx_fmt=png

但让他们始料未及的是,由于当时Python 2正如日中天势不可挡,Python 2的库也日趋丰富;而另一边,Python 3的改动有点大,库的支持相对较少,加上官方一向对开发者的宽容态度,这个计划又一直往后拖延了5年。(有人以为这是官方第一次发表该决定,其实Python官方已经多次公开声明过了,这次有点类似最后通牒的意思。)

但是Python维护者们内心有一个坚定的信念:历史的车轮是滚滚向前的,Python 2终究要成为历史,Python 3终究要登上舞台。

这11年来,经过Python官方不遗余力的说服教育、Python 3的不断完善,如今Python 2的市场占有率,已经不足Python 3的1/3。2年前你可能还能听到有人鼓吹2.x,如今很多程序已经明确要求3.x了。

根据OpenSource的调查结果显示,2017年Python 3已经是Python 2的3倍,而这一差距随着人工智能的兴起、新Python用户的加入等,还在逐步拉大。

640?wx_fmt=png

Python 3已广泛支持在标准库中使用Tkinter创建GUI应用程序。几乎从Python 3发布之日起,PyQt就支持Python 3;PySide在2011年增加了Python 3支持。可以使用支持Python 3的PyGObject创建GTK + GUI,它是PyGtk的后续版本。

截至2018年2月,在Python 3 Readiness上看到,来自PyPI的360个最常下载的软件包中,有348个已经支持Python 3。

如何从Python 2切到Python 3?

Python 3的某些方面已经被向后移植到Python 2.6和2.7,以便更容易地迁移到Python 3。


640?wx_fmt=jpeg

官方也给出了非常详细的升级指南:

https://docs.python.org/3/howto/pyporting.html

此外,因为从Python 2到Python 3之间的跨度有点大,需要一个重新适应的过程。如果你是一名Python 2的资深用户,可以看看官方给出的操作建议:

https://python3statement.org/practicalities/

除此之外,这里还有5个轻松适应从Python 2到Python 3的小tip,来自:

https://towardsdatascience.com/5-easy-tips-for-switching-from-python-2-to-3-6100f717610f

就是不想升级怎么办?

因为3代是2代的超进化体,这就导致一个问题:二者不兼容。但难免有些场景中,有着各种各样无法升级的原因。比如一个重要的软件,但是开发时间较早,升级风险过大;或者你只是个单纯的不想升级的old school,那么也是有办法的。

640?wx_fmt=jpeg

至少以下提到的3个项目,就能够让你在2020年以后,还可以继续开着Python 2这辆老爷车。

Tauthon(曾用名:Python 2.8)

刚开始Tauthon叫Python 2.8,但显然官方也没出到Python 2.8,很容易让人产生误会,最终改名。

Tauthon fork自Python 2.7.13核心部分,同时Python 3中许多最受欢迎的功能也被向后兼容。

Tauthon保留了print作为声明而非函数的存在,这是Python 2用户最后的坚持

PyPy

PyPy也是一个非常受欢迎的项目。它的内置JIT可以极大的提升Python的速度,而它也一直更偏爱Python 2,冷落Python 3。PyPy的官方也表示:PyPy的Python 2版本将一直存在!

Cython

Cython不是Python实现,而是个编译器。它将Python转换为C,极大的提升了Python的速度。

Cython支持Python 2和Python 3。Cython首席开发人员Robert Bradshaw在cython用户邮件列表中发文称:“Cython对2.x的支持主要是由项目需求驱动,而不是由Python的EOL时间表驱动”。也就是说,只要有项目需求,Cython会对Python 2一直支持下去。

最后,感谢 Guido van Rossum 为我们创造出一门如此美妙的语言,使无数人受益!感谢Python团队对开发者的“溺爱”,20年来一直没有停止过对Python 2的维护,即使他们内心多么希望大家转向Python 3;同时也祝福Python 3能够不断进化,继续造福广发开发者!

近期热门:

倒计时2天!千人Python知识星球重大福利,一年仅一次,还剩2天!

太好玩了,我用Python写了个火影忍者版的连连看

建议看一下,零基础学Python都想问的6个问题,老司机给你两千字解答

学习群:

小密圈人气很高的两个实战项目

小密圈的趣味实战-微信主题

3个月还没入门Python,看这100名小密圈的同学3周学Python的杰作

这篇关于官方最后通牒:Python2传奇20年将落幕,Python 3接力!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/299659

相关文章

python panda库从基础到高级操作分析

《pythonpanda库从基础到高级操作分析》本文介绍了Pandas库的核心功能,包括处理结构化数据的Series和DataFrame数据结构,数据读取、清洗、分组聚合、合并、时间序列分析及大数据... 目录1. Pandas 概述2. 基本操作:数据读取与查看3. 索引操作:精准定位数据4. Group

Python pandas库自学超详细教程

《Pythonpandas库自学超详细教程》文章介绍了Pandas库的基本功能、安装方法及核心操作,涵盖数据导入(CSV/Excel等)、数据结构(Series、DataFrame)、数据清洗、转换... 目录一、什么是Pandas库(1)、Pandas 应用(2)、Pandas 功能(3)、数据结构二、安

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Python安装Pandas库的两种方法

《Python安装Pandas库的两种方法》本文介绍了三种安装PythonPandas库的方法,通过cmd命令行安装并解决版本冲突,手动下载whl文件安装,更换国内镜像源加速下载,最后建议用pipli... 目录方法一:cmd命令行执行pip install pandas方法二:找到pandas下载库,然后

Python实现网格交易策略的过程

《Python实现网格交易策略的过程》本文讲解Python网格交易策略,利用ccxt获取加密货币数据及backtrader回测,通过设定网格节点,低买高卖获利,适合震荡行情,下面跟我一起看看我们的第一... 网格交易是一种经典的量化交易策略,其核心思想是在价格上下预设多个“网格”,当价格触发特定网格时执行买

Python标准库之数据压缩和存档的应用详解

《Python标准库之数据压缩和存档的应用详解》在数据处理与存储领域,压缩和存档是提升效率的关键技术,Python标准库提供了一套完整的工具链,下面小编就来和大家简单介绍一下吧... 目录一、核心模块架构与设计哲学二、关键模块深度解析1.tarfile:专业级归档工具2.zipfile:跨平台归档首选3.

使用Python构建智能BAT文件生成器的完美解决方案

《使用Python构建智能BAT文件生成器的完美解决方案》这篇文章主要为大家详细介绍了如何使用wxPython构建一个智能的BAT文件生成器,它不仅能够为Python脚本生成启动脚本,还提供了完整的文... 目录引言运行效果图项目背景与需求分析核心需求技术选型核心功能实现1. 数据库设计2. 界面布局设计3

Python进行JSON和Excel文件转换处理指南

《Python进行JSON和Excel文件转换处理指南》在数据交换与系统集成中,JSON与Excel是两种极为常见的数据格式,本文将介绍如何使用Python实现将JSON转换为格式化的Excel文件,... 目录将 jsON 导入为格式化 Excel将 Excel 导出为结构化 JSON处理嵌套 JSON:

Python操作PDF文档的主流库使用指南

《Python操作PDF文档的主流库使用指南》PDF因其跨平台、格式固定的特性成为文档交换的标准,然而,由于其复杂的内部结构,程序化操作PDF一直是个挑战,本文主要为大家整理了Python操作PD... 目录一、 基础操作1.PyPDF2 (及其继任者 pypdf)2.PyMuPDF / fitz3.Fre

python设置环境变量路径实现过程

《python设置环境变量路径实现过程》本文介绍设置Python路径的多种方法:临时设置(Windows用`set`,Linux/macOS用`export`)、永久设置(系统属性或shell配置文件... 目录设置python路径的方法临时设置环境变量(适用于当前会话)永久设置环境变量(Windows系统