社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

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

Python数据科学 • 4 年前 • 398 次点击  

点击上方“Python数据科学”,星标公众号

重磅干货,第一时间送达


☞500g+超全学习资源免费领取,干货来袭!


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

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


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


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



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


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


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



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

https://pythonclock.org/



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


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


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


但让他们始料未及的是,由于当时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用户的加入等,还在逐步拉大。



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。



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

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,那么也是有办法的。



至少以下提到的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能够不断进化,继续造福广发开发者!



推荐阅读

1、又一家数据公司被查,爬虫到底做错了什么?
2、最新版《机器学习数学基础》发布,417页PDF免费下载
3、干货 | 推荐一整套 Python 开发工具
4、Docker 容器化部署 Python 应用
5、搜索神器 EveryThing,你把它的潜力用到极致了吗?



Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/40091
 
398 次点击