從 Python 2 切換到 Python 3 你所需要了解的
從 2020 年 1 月 1 日開始,Python 2.7 將不再得到正式支持。在此日期之後,將會發布一個最終錯誤修復計劃,但是僅此而已。
Python 2 的生命終點(EOL)對你意味著什麼?如果正在運行著 Python 2,你需要遷移。
是誰決定 Python 2 的生命終點?
在 2012 年,維護 Python 編程語言的團隊審查了其選項。有兩個越來越不同的代碼庫,Python 2 和 Python 3。這兩者都很流行,但是較新的版本並未得到廣泛採用。
除了 Python 3 中完全重寫的 Unicode 支持改變了處理數據的底層方式造成的斷層,這個主要版本的變化還一次性出現了一些非向後兼容的更改。這種斷層的決定成文於 2006 年。為了減輕該斷層的影響,Python 2 繼續保持了維護,並向後移植了一些 Python 3 的功能。為了進一步幫助社區過渡,EOL 日期從 2015 年延長至 2020 年,又延長了五年。
該團隊知道,維護不同的代碼庫是必須解決的麻煩。最終,他們宣布了一項決定:
「我們是製作和照料 Python 編程語言的志願者。我們已決定 2020 年 1 月 1 日將是我們停止使用 Python 2 的日子。這意味著在這一天之後,即使有人發現其中存在安全問題,我們也將不再對其進行改進。你應儘快升級到 Python 3。」
Nick Coghlan 是 CPython 的核心開發人員,也是 Python 指導委員會的現任成員,在他的博客中添加了更多信息。由 Barry Warsaw(也是 Python 指導委員會的成員)撰寫的 PEP 404 詳細說明了 Python 2.8 永遠不會面世的原因。
有人還在支持 Python 2 嗎?
提供者和供應商對 Python 2 的支持會有所不同。Google Cloud 宣布了它計劃未來如何支持 Python 2。紅帽還宣布了紅帽企業 Linux(RHEL)的計劃,而 AWS 宣布了 AWS 命令行界面和 SDK 的次要版本更新要求。
你還可以閱讀 Vicki Boykis 在 Stack Overflow 撰寫的博客文章「為什麼遷移到 Python 3 需要這麼長時間?」,其中她指出了採用 Python 3 緩慢的三個原因。
使用 Python 3 的原因
不管是否有持續的支持,儘快遷移到 Python 3 是一個好主意。Python 3 將繼續受到支持,它具有 Python 2 所沒有的一些非常優雅的東西。
最近發布的 Python 3.8 包含 海象運算符、位置參數和自描述的格式化字元串等功能。Python 3 的早期版本引入的功能,例如 非同步 IO、格式化字元串、類型提示 和 pathlib,這裡只提及了一點點。
下載最多的前 360 個軟體包已遷移到 Python 3。你可以使用 caniusepython3 軟體包檢查你的 requirements.txt
文件,以查看你依賴的任何軟體包是否尚未遷移。
將 Python 2 移植到 Python 3 的參考資源
有許多參考資源可簡化你向 Python 3 的遷移。例如,「將 Python 2 移植到 Python 3 指南」列出了許多工具和技巧,可幫助你實現與 Python 2/3 單一源代碼的兼容性。在 Python3statement.org 上也有一些有用的技巧。
Dustin Ingram 和 Chris Wilcox 在 Cloud Next 『19上作了一個演講,詳細介紹了向 Python 3 過渡的一些動機和遷移模式。Trey Hunner 在 PyCon 2018 演講上介紹了 Python 3 最有用的功能,鼓勵你進行遷移,以便你可以利用它們。
加入我們!
距 2020 年 1 月 1 日僅有幾周了。如果你需要每天提醒一下它即將到來的時間(並且你使用 Twitter 的話),請關注 Python 2 日落倒計時 Twitter 機器人。
via: https://opensource.com/article/19/11/end-of-life-python-2
作者:Katie McLaughlin 選題:lujun9972 譯者:wxy 校對:wxy
本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive