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