升級到新的python版本是一種工作,但這種工作不一定會讓你的軟件用戶受益, 因為用戶關心的是功能和錯誤修復,而不是你的更新程度。
所以,仍有許多人使用 Python 3.7 并不奇怪, 截至 2022 年 12 月,從 PyPI 下載的包中有近 30% 是針對 Python 3.7 的, 這包括作為 CI 運行一部分的自動下載,所以這并不意味著 30% 的應用程序使用 3.7,但這仍然是很多人使用舊版本 Python 的原因。
不過,你可以延遲升級的時間有限,對于 Python 3.7,升級時間是在接下來的幾個月內, Python 3.7 將于 2023 年 6 月到期,到期后不再修復錯誤,也沒有安全修復。
Python 3.7 于 2018 年 6 月發布。正如你在 PEP 537 中所見:
錯誤修復和安全修復子版本在前兩年每 3 個月發布一次。
之后,僅根據需要發布安全修復程序。
3.7 發布后 5 年將停止發布。
也就是說,2023 年 6 月是發布 Python 3.7 的最后一個月, 從 2023 年 7 月開始,如果存在安全漏洞,Python 開發團隊將不再修復。
對安全修復的需求是真實的:3.7.9 之后的所有版本都是由于安全修復。撰寫本文時的最新版本 Python 3.7.16 已于 2022 年 12 月 6 日發布,其中包含 5 個不同的安全修復程序,從潛在的拒絕服務攻擊到緩沖區溢出。
一些 Linux 發行版保證在已知時間段內提供長期支持,包括安全錯誤修復, 如果你使用的是這些發行版之一,并且它包含 Python 3.7,那么你可以依賴該發行版來提供安全修復,即使 Python 開發團隊不會這樣做。
所以理論上,你還不需要升級, 但在實踐中,有一些警告。
大多數發行版中不包含 Python 3.7
RedHat 和克隆版不在任何版本中包含 Python 3.7。
Ubuntu 18.04 確實有 Python 3.7 作為附加組件,但它是 universe 附加組件包的一部分,因此尚不清楚安全支持會有多好;據推測,universe 包安全更新依賴于社區更新, 最后一次安全更新是在 2021 年 12 月,較新的 LTS Ubuntu 版本(20.04、22.04)不包括 Python 3.7。
Debian 10(“Buster”)包括 Python 3.7,但 Debian 11 不包括。
Linux 發行版不會向后移植所有安全修復程序,只會向后移植那些最重要的:
即使是現在,當 Python 維護者自己提供錯誤修復時,Python 3.7.16 也有許多安全修復沒有包含在 Debian 維護的版本中。
Ubuntu 上一次針對 Python 3.7 的安全更新是在 2021 年 12 月,盡管此后已經進行了多次安全更新。
當然,長期支持只會持續有限的時間:
Debian Buster 將于 2024 年 6 月結束其自身的安全更新,因此這只會讓你多花一年時間。
Ubuntu 18.04 將于 2023 年 4 月結束標準安全更新;之后,你需要付費才能獲得安全更新。
你的依賴項將停止獲取更新
一旦 6 月到來,第三方 Python 庫和框架將開始放棄對 Python 3.7 的支持, 這意味著如果這些庫有一個嚴重的錯誤,修復程序可能無法在 Python 3.7 上使用,并且你的 Linux 發行版不會為每個現有的 Python 庫做反向移植。
事實上,一些庫和框架已經開始放棄對 Python 3.7 的支持:
現在是從 3.7 升級的時候了在短期內,你的最低目標是切換到一個 Python 版本,該版本維護了可用的依賴項版本。例如,如果你依賴 Pandas,正如我們所見,最后一個與 3.7 兼容的版本是在 2021 年 12 月發布的。因此,你至少希望使用 Python 3.8。
幸運的是,Python 3 版本相當向后兼容, 所以可以做的是:
升級到 3.8。
修復你發現的任何錯誤。
升級到 3.9,修復所有錯誤。
重復直到你使用 Python 3.10 或從 2023 年 1 月左右開始使用 Python 3.11。
審核編輯 :李倩
-
框架
+關注
關注
0文章
403瀏覽量
17508 -
應用程序
+關注
關注
37文章
3277瀏覽量
57738 -
python
+關注
關注
56文章
4797瀏覽量
84776
原文標題:是時候停止使用 Python 3.7 了
文章出處:【微信號:magedu-Linux,微信公眾號:馬哥Linux運維】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論