新聞中心
Python 2已正式壽終正寢。Python編程語(yǔ)言團(tuán)隊(duì)剛宣布了Python 2的最后一個(gè)版本Python 2.7.18。展望未來(lái),Python 2將不再收到更新、錯(cuò)誤報(bào)告、修復(fù)版或更改。

Python軟件基金會(huì)建議使用Python 2的那些人盡快切換到Python 3。Python 3引入了不向后兼容的新功能和改進(jìn)功能。自2008年以來(lái),版本3處于積極開(kāi)發(fā)的狀態(tài)。Python3的最新版是版本3.8.2,這是Python 3.8的第二個(gè)維護(hù)版本。團(tuán)隊(duì)目前正在開(kāi)發(fā)Python 3.9,該版本的早期預(yù)覽版從本月開(kāi)始供開(kāi)發(fā)人員使用。
想進(jìn)一步了解Python 2和Python 3之間的變化以及如何成功遷移到Python 3,軟件開(kāi)發(fā)網(wǎng)站SD Times采訪了ActiveState的產(chǎn)品副總裁Jeff Rouse。以下是對(duì)話的編輯版。
SD Times:Python 2壽終正寢對(duì)組織而言意味著什么?
Rouse:引入Python 3時(shí),Guido van Rossum及核心團(tuán)隊(duì)認(rèn)為需要對(duì)該語(yǔ)言進(jìn)行重大更改,這意味著他們要擯棄向后兼容性,而你在設(shè)計(jì)一種語(yǔ)言時(shí)這是艱難的決定。從新技術(shù)的角度來(lái)看,一二十年前做出的設(shè)計(jì)決策可能站不住腳,于是最終推出Python 3后,社區(qū)和核心語(yǔ)言維護(hù)者在十年間的大部分時(shí)間用于勸說(shuō)人們從Python 2遷移到Python 3,以便所有維護(hù)者以及支持這兩個(gè)版本的Python社區(qū)中的每個(gè)人都可以最終完成。
Python 2.7走到盡頭意味著,將不再有任何錯(cuò)誤修正版、沒(méi)有改進(jìn),可能最重要的是,沒(méi)有針對(duì)該語(yǔ)言的安全更新。這包括大多數(shù)社區(qū)軟件包。
組織遷移到Python 3要花多久?
實(shí)際上,它們應(yīng)該已經(jīng)在考慮這一點(diǎn)。造勢(shì)已有相當(dāng)長(zhǎng)一段時(shí)間。最初的想法是2010年左右每個(gè)人(都會(huì))開(kāi)始遷移。2014年將是截止日期,后來(lái)延長(zhǎng)到了2020年。
組織應(yīng)該已經(jīng)在考慮,如果它們剛接觸Python 3,那很好。它們實(shí)際上可以利用所有可用的內(nèi)容、應(yīng)用程序和項(xiàng)目來(lái)幫助從Python 2遷移到Python3。你需要執(zhí)行一系列步驟來(lái)評(píng)估從Python 2遷移到Python 3需要多大的工作量,每種情況有所不同。
Python 2.7的最后版本已發(fā)布,你認(rèn)為組織是否感受到了最終要積極遷移的壓力?
是的,我們?cè)贏ctiveState上已看到了這一幕。我們同時(shí)支持Python 2和Python 3,有許多新客戶過(guò)來(lái)說(shuō)“嘿,我仍在使用Python2。你能幫助我們擺脫困境嗎?”或“你能給我們多一點(diǎn)時(shí)間,直到我們準(zhǔn)備好使用Python 3嗎?”
對(duì)于擁有龐大代碼庫(kù)的組織而言,進(jìn)行更改并非易事。即使從Python 2遷移到Python 3不用重寫(xiě),這項(xiàng)工作也足夠重要,你需要非常認(rèn)真地梳理代碼庫(kù),以便確保將所有內(nèi)容遷移過(guò)去。然后,出于同樣的道理,你擁有代碼庫(kù)依賴的所有這些相關(guān)軟件包,因此你還要考慮到這一點(diǎn)。
可能會(huì)有一些升級(jí)難題,因此組織應(yīng)立即規(guī)劃做好這項(xiàng)工作。要認(rèn)識(shí)到安全漏洞和缺陷確實(shí)會(huì)慢慢出現(xiàn)。
如果他們計(jì)劃將來(lái)維護(hù)應(yīng)用程序,又想充分利用任何新技術(shù),享有明顯得到維護(hù)的安全更新和錯(cuò)誤修正版,他們確實(shí)要轉(zhuǎn)向Python 3。
你會(huì)在Python 2和Python 3之間看到什么區(qū)別?
Python 3確實(shí)加強(qiáng)了語(yǔ)法。Python的核心理念之一是,做某事只有一種方法,并且做得很好。Python的一大優(yōu)點(diǎn)是,它是一種非常易讀的語(yǔ)言,使用起來(lái)非常簡(jiǎn)單,以至于語(yǔ)言設(shè)計(jì)人員其實(shí)認(rèn)定應(yīng)該繼續(xù)對(duì)此進(jìn)行改進(jìn)。
比如說(shuō),只有一種方法可以做迭代器(iterator),沒(méi)有多種方法可以設(shè)定范圍。因此,我認(rèn)為開(kāi)發(fā)人員會(huì)從語(yǔ)法方面受益匪淺,這使事情變得更簡(jiǎn)單了一點(diǎn)。Python 3的性能繼續(xù)提高。標(biāo)準(zhǔn)庫(kù)有大量改進(jìn)。它以極其強(qiáng)大的方式處理異步函數(shù);總體上講,它旨在繼續(xù)推進(jìn)這門(mén)語(yǔ)言。
由于遷移過(guò)程中有許多考慮因素,組織如何才能成功地遷移過(guò)去?
首先要做的是弄清楚應(yīng)用程序和實(shí)用程序面臨的風(fēng)險(xiǎn)狀況。然后,你便知道要投入多少,早做而不是晚做有多重要。第一件事其實(shí)是從Python 2應(yīng)用程序出色的測(cè)試覆蓋入手,因?yàn)樵谀氵w移到Python 3時(shí)這至關(guān)重要,你的測(cè)試將繼續(xù)表明該功能并未受到任何破壞。
我個(gè)人的看法是,如果你未使用最新的Python 2.7,也許你在使用2.6或2.7的早期版,那么確保一切正常運(yùn)行是最明智的。然后,你實(shí)際上可以運(yùn)行源代碼轉(zhuǎn)換器……這為你提供了將Python 2轉(zhuǎn)換成Python 3的結(jié)果。之后,它會(huì)指出需要你手動(dòng)修復(fù)的任何方面。
在此過(guò)程中,就你使用的各種軟件包而言,你會(huì)在代碼中遇到依賴項(xiàng)。你可能需要遷移至同一軟件包的不同版本。
你如何看待Python在將來(lái)繼續(xù)使用,Python 3將扮演怎樣的角色?
如今,Python 3顯然是數(shù)據(jù)科學(xué)背后的引擎,而且在許多方面,數(shù)據(jù)科學(xué)已圍繞Python融合在一起。
所有世界優(yōu)秀的數(shù)據(jù)科學(xué)都用Python來(lái)完成。我認(rèn)為這種情況不會(huì)很快發(fā)生變化。
我們談?wù)揚(yáng)ython 2時(shí),有相當(dāng)多的數(shù)據(jù)科學(xué)工作也是用Python 2完成的,但是大多數(shù)主要軟件包(比如TensorFlow等)在相當(dāng)早的修訂版中不再支持Python 2。因此,如果你其實(shí)不考慮搞真正的數(shù)據(jù)科學(xué),可以用Python 2處理很多數(shù)據(jù)分析,但是要搞真正的數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí),你確實(shí)應(yīng)該使用Python 3。
文章標(biāo)題:Python 2已正式壽終正寢,是時(shí)候遷移到Python 3了
鏈接地址:http://www.dlmjj.cn/article/dhgegcc.html


咨詢
建站咨詢
