這篇文章主要介紹為什么Python2更新到Python3這么慢,文中介紹的非常詳細(xì),具有一定的參考價值,感興趣的小伙伴們一定要看完!
網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁設(shè)計、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了萬州免費(fèi)建站歡迎大家使用!
作為目前最為流行的編程語言,Python 的出現(xiàn)讓計算機(jī)編程不再是生僻的專業(yè)技能,而是常人都能學(xué)習(xí)和使用的萬金油,它也是人工智能領(lǐng)域里最為常用的語言之一。不過在三個月內(nèi),Python 或許要經(jīng)歷史上最大的一次變化。
昨天,Python 官方網(wǎng)站的一紙聲明《Python 2 的落幕》引發(fā)了人們的廣泛討論:該開發(fā)社區(qū)表示,官方對于 Python 2 的支持將會在 2020 年 1 月 1 日結(jié)束,在這之后即使是出現(xiàn)安全問題,舊版本的語言也不會得到任何改進(jìn)。人們現(xiàn)在必須立即轉(zhuǎn)移到 3.0 以上版本了。
目前,仍有一些開發(fā)者以志愿者的身份維護(hù) Python2 語言。不過他們已共同決定,2020 年 1 月 1 日將是 Python2「生命終結(jié)」的那一天。該日之后,所有 Python2 相關(guān)的維護(hù)都將終止。
為什么 Python2 更新到 Python3 這么慢
不太了解編程的讀者可能會有個疑問:總是提 Python3 比 Python2 好太多,為什么還是有人不更新呢?
機(jī)器之心認(rèn)為可能主要有以下幾個原因:
1. 工程穩(wěn)定性相比軟件的更新速度更為重要。
編程語言是構(gòu)成軟件的基石,編程語言如果發(fā)生了更新?lián)Q代,軟件的更新不是一件小事,需要全面地對所有代碼進(jìn)行更新。在這一過程中,如果出現(xiàn)新舊版本不兼容、代碼穩(wěn)定性變差等情況,可能會影響到用戶的持續(xù)使用。因此,對于一些版本迭代,很多軟件開發(fā)者選擇不更新。寧可保證用戶使用的穩(wěn)定性,也不能急于更新到最新版本。
2. Python 官方「允許」Python2 持續(xù)存在。
Python 官方在文檔中也提到,大版本的更新有可能會「傷害」開發(fā)者。具體而言,如果在 2006 年就迅速要求開發(fā)者放棄 Python2,則很多開發(fā)者可能因?yàn)殚_發(fā)成本問題,直接放棄 Python。繁榮的開發(fā)者社區(qū)是維持 Python 編程語言地位的重要條件,因此官方一直在更新維護(hù) Python2,讓更多的開發(fā)者留存在社區(qū)中。
3. Python2 確實(shí)也好用。
雖然相比 Python3,Python2 存在很多大的問題,但是 Python2 依然也是一個開發(fā)者友好的 Python 版本,在 Python2 時期就有很多開源庫支持了。因此,一些開發(fā)者希望繼續(xù)使用 Python2。
這些原因下來,Python3 取代 Python2 的進(jìn)程就拖了十來年。不過,隨著機(jī)器學(xué)習(xí)的發(fā)展,機(jī)器學(xué)習(xí)領(lǐng)域?qū)幊陶Z言的性能有很高的要求,且大部分新的工具都支持 Python3。因此,使用性能更好,有更多工具支持的 Python3 成為了開發(fā)者的必然選擇。
放棄支持 Python2 的軟件列表
2017 年,機(jī)器之心曾報道過將會放棄 Python2 的開源工具。目前,這一列表又長了很多。
TensorFlow、Scikit-learn、Pandas、XGBoost 等工具已經(jīng)準(zhǔn)備放棄 Python2。
同時停止支持的還包括 Numpy、Matplotlib、Jupyter Notebook 等。
還有很多如 Cython、IPython 在內(nèi)的工具。
以上為已經(jīng)放棄 Python2 的開源工具列表(不完全統(tǒng)計)。從這個列表可以看到,Python 的生態(tài)系統(tǒng)是多么龐大。
下表顯示了多個項(xiàng)目確定停止支持 Python 2 的時間。從該表中可以得知每個項(xiàng)目的某個版本是否支持 Python 2、發(fā)布時間線以及擴(kuò)展支持的時間。(Python 自己的時間線:https://docs.python.org/devguide/#status-of-python-branches)
官方答疑
官方同時提供了一些相關(guān)的答疑,機(jī)器之心整理如下:
為什么要終止 Python2?
答:終止 Python2 是因?yàn)槲覀円玫貛椭_發(fā)者。
Python2 是 2000 年發(fā)布的。一些年之后,我們意識到需要對 Python 進(jìn)行一次大的更新升級。因此在 2006 年,我們開始了 Python3 的開發(fā)工作。因?yàn)楹芏嗳嗽诋?dāng)時沒有更新,而我們也不希望這次更新給他們造成損害,因此多年來我們一直在維護(hù)并公開新的 Python2 和 Python3 版本。
但是這樣一來,維護(hù) Python 的工作變得非常困難。Python2 中有一些改進(jìn)和維護(hù)是很難進(jìn)行下去的。這會擠占我們提升 Python3 速度和性能的精力。
而且,如果還有很多人繼續(xù)使用 Python2,那些用 Python 開發(fā)程序的開源工作者工作起來會更困難。他們不能使用 Python3 中的新特性讓開源工具變得更好用。
我們不想傷害使用 Python2 的開發(fā)者,因此在 2008 年,我們宣布 Python2 將在 2015 年終止,并希望大家能夠更新。當(dāng)時,一些人更新了,但是還有一些人留在了 Python2 上,因此我們將終止時間推后到了 2020 年。
目前 Python2 還有多久的壽命?
答:從 2019 年 9 月 10 日起算還有 3 個月 21 天。有一個倒計時,在 pythonclock.org (https://pythonclock.org/) 網(wǎng)站上。
機(jī)器之心在發(fā)稿時對倒計時網(wǎng)站的截圖。
如果沒有升級,會怎么樣?
答:在終止日期到來后,即使用戶發(fā)現(xiàn)了 Python2 上的災(zāi)難性安全問題,或者在 Python2 開發(fā)的軟件中發(fā)現(xiàn)了這些問題,志愿者也不會幫助修復(fù)。如果用戶需要 Python2 相關(guān)的軟件協(xié)助,志愿者也不會提供幫助,并且越來越少的志愿者能夠幫助到這些用戶。同時,用戶可能會失去使用優(yōu)秀開源工具的機(jī)會,因?yàn)樗麄兌际腔?Python3 開發(fā)的。同時,使用 Python2 的用戶可能會拖慢其他使用 Python3 進(jìn)行開發(fā)的人員的工作進(jìn)度。
如何將 Python2 代碼轉(zhuǎn)為 Python3?
答:請參閱官方提供的指南。
指南地址:https://docs.python.org/3/howto/pyporting.html
如果用戶基于 Python2 開發(fā)了一些軟件,應(yīng)該怎么做?
答:如果是從供應(yīng)商那里購買的軟件或軟件支持,則詳情可咨詢他們;如果是從開發(fā)者或系統(tǒng)管理員那里付款獲得的軟件,則咨詢這些開發(fā)者或管理員。如果二者均不是,則點(diǎn)擊「Can I Use Python3?」頁面查找升級到 Python3 所需要的工具。
caniusepython3 頁面地址:https://pypi.org/project/caniusepython3/
是否有人員可以提供用戶幫助?
答:是的。如果你付錢購買擴(kuò)展支持,則與供應(yīng)商聯(lián)系。如果你可以付錢聘請一些人來幫助你,則可以在求職面板上發(fā)帖或直接聘請咨詢?nèi)藛T。如果你需要志愿者提供免費(fèi)幫助,則可以查看以下幫助頁:https://www.python.org/about/help/。
用戶直到現(xiàn)在才聽說 Python2 升級事宜。在哪里宣布的升級通知?
答:我們在軟件會議、Python 通知郵件列表、Python 官方博客、相關(guān)參考書和技術(shù)文章、社交媒體以及與出售 Python 支持的公司都討論過 Python2 的升級事宜。
用戶怎樣才能確保下次及時收到升級通知呢?
答:從供應(yīng)商那里購買 Python 支持,或者訂閱 Python 通知郵件列表。
訂閱地址:https://mail.python.org/mailman3/lists/python-announce-list.python.org/
從答疑來看,Python2 會被徹底拋棄。即使出現(xiàn)零日漏洞也不會有安全更新了,用戶要抓緊升級,以免出現(xiàn)安全問題而得不到技術(shù)支持。
轉(zhuǎn)移需盡早
目前,得到良好維護(hù)的開源項(xiàng)目大多已經(jīng)轉(zhuǎn)移到 Python 3 上了。你能找到的 Python2 項(xiàng)目源碼,基本都是比較早期不再維護(hù)的項(xiàng)目,或是一些系統(tǒng)級項(xiàng)目(因?yàn)?Linux 和 MacOS 都自帶 Python2.7)。根據(jù) JetBrains 最新的 Python 開發(fā)者調(diào)查,大約 80% 開發(fā)者已在使用 3.5+ 版本。要知道在兩年前,使用 Python 3 的比例還只有三分之一。
Python 早已經(jīng)提供了 2 to 3 自動化工具,僅需一行命令就可以將 Python 2 代碼轉(zhuǎn)成 3。在 HackerNews 上,很多人對于 Python 2 支持的結(jié)束展開了討論。
有網(wǎng)友表示:「Python 2 到 3(至少是 3.3 版本以上)是我做過最容易的過渡之一。我們可以通過庫(Six)的幫助來完成轉(zhuǎn)移,在幾乎所有的情況下你都可以編寫 2 到 3 版本兼容的代碼,這意味著轉(zhuǎn)移可以以每次一小部分的形式進(jìn)行。至于依賴項(xiàng),開發(fā)者們也已幫助升級了很多第三方模塊。」
以上是為什么Python2更新到Python3這么慢的所有內(nèi)容,感謝各位的閱讀!希望分享的內(nèi)容對大家有幫助,更多相關(guān)知識,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道!
網(wǎng)站名稱:為什么Python2更新到Python3這么慢
分享鏈接:http://jinyejixie.com/article22/jjhdjc.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信小程序、外貿(mào)建站、響應(yīng)式網(wǎng)站、網(wǎng)站設(shè)計公司、商城網(wǎng)站、網(wǎng)站排名
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)