日韩久久久精品,亚洲精品久久久久久久久久久,亚洲欧美一区二区三区国产精品 ,一区二区福利

Python 2.x 即將終止更新和技術支持,是時候和它講再見了

系統 1821 0

Python 2的報廢(EOL)日期遲遲未到,不過現在終于有了眉目。自2020年1月1日起,Python 2將不再得到支持。Python的核心開發人員將不再提供錯誤修復版或安全更新。 因此,如果你仍在使用Python 2.x,是時候將代碼移植到Python 3了。如果你繼續使用未得到支持的模塊,可能危及貴企業及數據的安全性,因為無人修復的漏洞遲早會出現。

問題的嚴重性

下面這張表列出了十個流行的Python軟件包及統計數據,來自Python社區開發和共享的軟件的存儲中心Python Package Index。

表中每個軟件包每月下載量達數百萬次。本文中的數據來自2019年6月。

正如你所見,大多數下載的軟件包仍針對Python 2.x版本。在最好的情況下,Web應用程序框架Flask主要是針對3.x而下載的。但即使如此,仍有近三分之一的下載仍針對2.x.

即使這些下載中只有一部分用于實際項目,Python 2報廢仍可能影響數百萬系統的安全性。

Python 2.x 即將終止更新和技術支持,是時候和它講再見了_第1張圖片

Python 2消亡帶來的問題

Python 2報廢帶來了許多問題,這里是你可能會遇到的幾個問題。

依賴項

NumPy、Requests和TensorFlow等許多大受歡迎的項目承諾到2020年將停止支持2.x,一些項目已經這么做了。

這意味著如果你想使用青睞的模塊的最新功能,需要使用Python 3。等待更新的時間越長,到時將更改的依賴項的Python 3版本會越多,更新起來會變得越困難。

你可能阻礙其他開發人員

如果你在維護其他開發人員依賴的庫,可能會阻止他們更新到3。如果阻礙其他開發人員,你在間接、可能無意中加大其他項目面臨的安全風險。

你也許不在貴公司外面發布任何代碼,但要考慮可能也在內部使用你代碼的同事。、

你錯失最新功能

Python 3有許多你錯失的新功能,包括如下:

  • 來自表達式的好處——允許生成器將其操作的一部分委托給另一個生成器。

  • 統一編碼字符串——統一編碼處理起來更容易。

  • 打印函數——打印函數有額外的功能,因而使其更靈活。

  • 視圖和迭代器取代列表——一些眾所周知的API不再返回列表。比如說,字典返回鍵的視圖、值的視圖或兩者的視圖。

  • “multi-with”語句——復雜的with語句更易于閱讀。

  • 使用*和**解包——擴大了*可迭代解包運算符和**字典解包運算符的用途。現在可以在函數調用中使用任意數量的解包運算符。

  • 純關鍵字實參——允許實參出現在可變長度(varargs)實參的后面。

  • F字符串——運行時評估的一種新類型的字符串常量,可能含有任何有效的Python表達式。

  • 大量的加速和優化機制。

Python 3.0發布時,一些新功能向后移植到Python 2.7,可能很熟悉。如果你一直堅持使用2.6或更低版本,這些新功能對你來說可能很陌生。

幫助開發人員

將Python 2.x代碼移植到Python 3可能是很艱巨的過程。幸好,一些工具和資源可以使這個過程較容易。

Can I Use Python 3?這個程序可檢查你的項目依賴項,看看有沒有依賴項在阻止你使用Python 3。使用該程序來查看你是否需要換掉任何使用Python 2.x的庫。在這種情況下,有必要訪問該庫主頁,看看是否有計劃移植到3。

2to3?這個Python程序試圖將2.x源代碼轉換成3。它通常與Python解釋器一起安裝為腳本。如果你只想看看它對源代碼進行的每次變更有何差異,不用編寫任何更改就可以運行該程序。注意這不完美,你可能仍需要手動修復一些代碼。

《支持Python 3:深入指南》這份免費的開源電子書可指導你逐步完成添加Python 3支持的過程。本電子書解釋了你可能遇到的一些常見遷移問題,并列出了使用Python 3中的新功能改進源代碼的方法。

Six?是一個Python 2和3兼容庫,讓開發人員方便編寫與Python 2和3都兼容的代碼。使用該庫,開發人員可以選擇使用哪個版本的Python解釋器來運行代碼。如果你決定使用該庫,確保代碼表明了這一點:Python版本號可能很快增加到4.0(截至本文發稿時最新版本為3.7.4)。

利用他人的經驗來幫助你——很多人已講述了移植代碼庫方面的經驗。Dropbox在2018年將代碼庫遷移到Python 3,撰寫了一篇博文詳細介紹了經驗。

Python官網還提供了你可能覺得有用的說明文檔。

遷移不是一種選擇

如果無法將代碼庫遷移到Python 3,另一種選擇是出錢請商業公司為你支持Python 2。

至少有一家公司已經宣布推出Python 2支持軟件包和Python 2第三方軟件包。

一些Linux發行版包含Python 2,報廢后仍會得到支持。比如說,CentOS 7和Debian 10都使用Python 2,一直支持到2024年,但不知道到時這種支持是什么樣的。

改進的機會

維護是任何軟件開發生命周期(SDLC)的重要環節。該環節的一方面是改進軟件性能、增強安全性,這兩者都可以通過升級到Python 3來實現。

換句話說,如果你仍在使用Python 2,這正是改進你如何管理軟件依賴項,并盡量減少安全債務的大好機會。

不要忽視風險

我們NCSC始終強調打補丁的重要性。打補丁并非總是易事,但這是你為了確保技術安全所能做的最基本工作之一。

WannaCry勒索軟件就是一個典例,它表明了如果你運行不受支持的軟件會發生什么。它感染了超過230000臺計算機,在全球范圍內重大破壞。最近,Equifax泄密事件導致高達達7億美元的和解。

如果決定報廢后繼續使用Python 2,你就接受了使用不受支持的軟件帶來的種種風險,卻明知道可以使用安全的版本。

但愿本文有助于說服你現在是時候開始遷移到Python 3了。


更多文章、技術交流、商務合作、聯系博主

微信掃碼或搜索:z360901061

微信掃一掃加我為好友

QQ號聯系: 360901061

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。

【本文對您有幫助就好】

您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描上面二維碼支持博主2元、5元、10元、自定義金額等您想捐的金額吧,站長會非常 感謝您的哦!!!

發表我的評論
最新評論 總共0條評論
主站蜘蛛池模板: 孝义市| 长宁县| 定日县| 宁南县| 石棉县| 望江县| 白玉县| 西昌市| 永川市| 蒙山县| 苗栗市| 大方县| 钟山县| 灌云县| 东港市| 丰宁| 余庆县| 敦化市| 怀柔区| 柞水县| 信丰县| 调兵山市| 平阴县| 宕昌县| 天门市| 尖扎县| 修武县| 屏山县| 静安区| 临沂市| 阜宁县| 镇雄县| 石景山区| 内乡县| 嘉祥县| 尉氏县| 卢氏县| 隆尧县| 丹江口市| 丹寨县| 犍为县|