升級(jí)到新的python版本是一種工作,但這種工作不一定會(huì)讓你的軟件用戶受益, 因?yàn)橛脩絷P(guān)心的是功能和錯(cuò)誤修復(fù),而不是你的更新程度。
所以,仍有許多人使用 Python 3.7 并不奇怪, 截至 2022 年 12 月,從 PyPI 下載的包中有近 30% 是針對(duì) Python 3.7 的, 這包括作為 CI 運(yùn)行一部分的自動(dòng)下載,所以這并不意味著 30% 的應(yīng)用程序使用 3.7,但這仍然是很多人使用舊版本 Python 的原因。
不過,你可以延遲升級(jí)的時(shí)間有限,對(duì)于 Python 3.7,升級(jí)時(shí)間是在接下來的幾個(gè)月內(nèi), Python 3.7 將于 2023 年 6 月到期,到期后不再修復(fù)錯(cuò)誤,也沒有安全修復(fù)。
Python 3.7 于 2018 年 6 月發(fā)布。正如你在 PEP 537 中所見:
錯(cuò)誤修復(fù)和安全修復(fù)子版本在前兩年每 3 個(gè)月發(fā)布一次。
之后,僅根據(jù)需要發(fā)布安全修復(fù)程序。
3.7 發(fā)布后 5 年將停止發(fā)布。
也就是說,2023 年 6 月是發(fā)布 Python 3.7 的最后一個(gè)月, 從 2023 年 7 月開始,如果存在安全漏洞,Python 開發(fā)團(tuán)隊(duì)將不再修復(fù)。
對(duì)安全修復(fù)的需求是真實(shí)的:3.7.9 之后的所有版本都是由于安全修復(fù)。撰寫本文時(shí)的最新版本 Python 3.7.16 已于 2022 年 12 月 6 日發(fā)布,其中包含 5 個(gè)不同的安全修復(fù)程序,從潛在的拒絕服務(wù)攻擊到緩沖區(qū)溢出。
一些 Linux 發(fā)行版保證在已知時(shí)間段內(nèi)提供長期支持,包括安全錯(cuò)誤修復(fù), 如果你使用的是這些發(fā)行版之一,并且它包含 Python 3.7,那么你可以依賴該發(fā)行版來提供安全修復(fù),即使 Python 開發(fā)團(tuán)隊(duì)不會(huì)這樣做。
所以理論上,你還不需要升級(jí), 但在實(shí)踐中,有一些警告。
大多數(shù)發(fā)行版中不包含 Python 3.7
RedHat 和克隆版不在任何版本中包含 Python 3.7。
Ubuntu 18.04 確實(shí)有 Python 3.7 作為附加組件,但它是 universe 附加組件包的一部分,因此尚不清楚安全支持會(huì)有多好;據(jù)推測,universe 包安全更新依賴于社區(qū)更新, 最后一次安全更新是在 2021 年 12 月,較新的 LTS Ubuntu 版本(20.04、22.04)不包括 Python 3.7。
Debian 10(“Buster”)包括 Python 3.7,但 Debian 11 不包括。
Linux 發(fā)行版不會(huì)向后移植所有安全修復(fù)程序,只會(huì)向后移植那些最重要的:
即使是現(xiàn)在,當(dāng) Python 維護(hù)者自己提供錯(cuò)誤修復(fù)時(shí),Python 3.7.16 也有許多安全修復(fù)沒有包含在 Debian 維護(hù)的版本中。
Ubuntu 上一次針對(duì) Python 3.7 的安全更新是在 2021 年 12 月,盡管此后已經(jīng)進(jìn)行了多次安全更新。
當(dāng)然,長期支持只會(huì)持續(xù)有限的時(shí)間:
Debian Buster 將于 2024 年 6 月結(jié)束其自身的安全更新,因此這只會(huì)讓你多花一年時(shí)間。
Ubuntu 18.04 將于 2023 年 4 月結(jié)束標(biāo)準(zhǔn)安全更新;之后,你需要付費(fèi)才能獲得安全更新。
你的依賴項(xiàng)將停止獲取更新
一旦 6 月到來,第三方 Python 庫和框架將開始放棄對(duì) Python 3.7 的支持, 這意味著如果這些庫有一個(gè)嚴(yán)重的錯(cuò)誤,修復(fù)程序可能無法在 Python 3.7 上使用,并且你的 Linux 發(fā)行版不會(huì)為每個(gè)現(xiàn)有的 Python 庫做反向移植。
事實(shí)上,一些庫和框架已經(jīng)開始放棄對(duì) Python 3.7 的支持:
現(xiàn)在是從 3.7 升級(jí)的時(shí)候了在短期內(nèi),你的最低目標(biāo)是切換到一個(gè) Python 版本,該版本維護(hù)了可用的依賴項(xiàng)版本。例如,如果你依賴 Pandas,正如我們所見,最后一個(gè)與 3.7 兼容的版本是在 2021 年 12 月發(fā)布的。因此,你至少希望使用 Python 3.8。
幸運(yùn)的是,Python 3 版本相當(dāng)向后兼容, 所以可以做的是:
升級(jí)到 3.8。
修復(fù)你發(fā)現(xiàn)的任何錯(cuò)誤。
升級(jí)到 3.9,修復(fù)所有錯(cuò)誤。
重復(fù)直到你使用 Python 3.10 或從 2023 年 1 月左右開始使用 Python 3.11。
審核編輯 :李倩
-
框架
+關(guān)注
關(guān)注
0文章
404瀏覽量
17890 -
應(yīng)用程序
+關(guān)注
關(guān)注
38文章
3335瀏覽量
59023 -
python
+關(guān)注
關(guān)注
56文章
4827瀏覽量
86708
原文標(biāo)題:是時(shí)候停止使用 Python 3.7 了
文章出處:【微信號(hào):magedu-Linux,微信公眾號(hào):馬哥Linux運(yùn)維】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
使用Python3.7導(dǎo)入cv2時(shí)遇到錯(cuò)誤怎么解決?
開發(fā)者福音!谷歌云APP引擎開始支持Python 3.7
10年Python功力,總結(jié)了10個(gè)開發(fā)技巧,非常實(shí)用
電機(jī)停止的時(shí)候熱繼電器跳閘怎么解決?
Coverity 呼吁停止使用不安全軟件
智能眼鏡Spectacles未能經(jīng)住市場考驗(yàn),大量用戶在一周后就停止使用
隨著科技的發(fā)展,Python什么時(shí)候會(huì)被取代
預(yù)測:數(shù)百萬人將停止使用付費(fèi)有線電視服務(wù)
谷歌開始要求開發(fā)者停止使用win7
傳谷歌或停止使用跟蹤iPhone用戶工具
強(qiáng)制在凌晨4點(diǎn)停止使用筆記本電腦的開源設(shè)備

戴爾計(jì)劃2024年停止使用“中國制造”芯片;美國科技公司最大規(guī)模裁員:亞馬遜裁撤1.8萬個(gè)崗位
Debian終于完全刪除Python 2
微軟:VSCode決定放棄Python 3.7

評(píng)論