自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

是時候對 Python2 說“拜拜了”

新聞 前端
Python 2 的報廢(EOL)日期遲遲未到,不過現(xiàn)在終于有了眉目。自 2020 年 1 月 1 日起,Python 2 將不再得到支持。

 

  作者:Rich M  英國國家網(wǎng)絡安全中心(NCSC)的平臺安全研究員。

  別再約束自己了,Python 2 在 2020 年壽終正寢。

  Python 2 的報廢(EOL)日期遲遲未到,不過現(xiàn)在終于有了眉目。自 2020 年 1 月 1 日起,Python 2 將不再得到支持。Python 的核心開發(fā)人員將不再提供錯誤修復版或安全更新。

  因此,如果你仍在使用 Python 2.x,是時候將代碼移植到 Python 3 了。如果你繼續(xù)使用未得到支持的模塊,可能危及貴企業(yè)及數(shù)據(jù)的安全性,因為無人修復的漏洞遲早會出現(xiàn)。

  問題的嚴重性

  下面這張表列出了十個流行的 Python 軟件包及統(tǒng)計數(shù)據(jù),來自 Python 社區(qū)開發(fā)和共享的軟件的存儲中心 Python Package Index。

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

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

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

  Python 2 消亡帶來的問題

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

  依賴項

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

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

  你可能阻礙其他開發(fā)人員

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

  你也許不在貴公司外面發(fā)布任何代碼,但要考慮可能也在內(nèi)部使用你代碼的同事。

  你錯失最新功能

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

  • 來自表達式的好處——允許生成器將其操作的一部分委托給另一個生成器。
  • 統(tǒng)一編碼字符串——統(tǒng)一編碼處理起來更容易。
  • 打印函數(shù)——打印函數(shù)有額外的功能,因而使其更靈活。
  • 視圖和迭代器取代列表——一些眾所周知的 API 不再返回列表。比如說,字典返回鍵的視圖、值的視圖或兩者的視圖。
  • “multi-with”語句——復雜的 with 語句更易于閱讀。
  • 使用*和**解包——擴大了*可迭代解包運算符和**字典解包運算符的用途?,F(xiàn)在可以在函數(shù)調(diào)用中使用任意數(shù)量的解包運算符。
  • 純關鍵字實參——允許實參出現(xiàn)在可變長度(varargs)實參的后面。
  • F字符串——運行時評估的一種新類型的字符串常量,可能含有任何有效的 Python 表達式。
  • 大量的加速和優(yōu)化機制。

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

  幫助開發(fā)人員

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

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

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

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

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

  利用他人的經(jīng)驗來幫助你——很多人已講述了移植代碼庫方面的經(jīng)驗。Dropbox 在 2018 年將代碼庫遷移到 Python 3,撰寫了一篇博文(https://blogs.dropbox.com/tech/2018/09/how-we-rolled-out-one-of-the-largest-python-3-migrations-ever/)詳細介紹了經(jīng)驗。

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

  遷移不是一種選擇

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

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

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

  改進的機會

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

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

  不要忽視風險

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

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

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

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

責任編輯:張燕妮 來源: 云頭條
相關推薦

2009-11-19 17:04:30

動態(tài)路由技術

2012-02-01 14:41:13

Android手機硬件

2009-02-25 09:20:42

職場調(diào)查壓力

2018-07-25 10:00:26

2018-05-07 10:50:40

職場35歲現(xiàn)象跳槽

2012-10-12 13:35:51

Windows 8

2015-11-24 11:48:32

RFID技術物聯(lián)網(wǎng)

2014-09-23 10:23:26

404 Not Fou谷歌

2022-11-11 08:16:51

2010-07-12 15:34:30

2013-08-21 10:20:25

Google中國手游團隊日韓市場

2017-05-28 12:26:58

5GTCPIP

2020-05-06 15:02:02

Python

2023-10-19 15:25:40

2017-09-15 18:16:56

人工智能Python

2017-02-17 07:46:29

2018-08-21 05:12:10

2024-01-02 07:34:38

CentOSLinuxRedhat

2013-07-10 09:32:15

手機游戲手機游戲市場

2021-12-26 09:00:15

IE瀏覽器Edge瀏覽器瀏覽器
點贊
收藏

51CTO技術棧公眾號