Python 3.8 已於前兩週正式發佈,不過目前大多數開發者主要使用的還是 Python 3.7.x 或更舊的版本。html
!python
事實上,馬上切換到使用 Python 3.8 可能會引起一些問題。想知道什麼時候切換至 Python 3.8?下文將簡要概述切換主要的 Python 版本以及進行切換時可能會遇到的問題(來自一名開發者的心得經驗)。docker
1.缺乏軟件包app
opencv-python是一個十分受歡迎的軟件包,其下載量約爲 5000 萬。但正如本文提到的同樣,若是你如今(2019年10月28日)嘗試在 Python 3.8 上安裝它會發現並不起做用:工具
$ docker run python:3.8-slim pip install opencv-pythonERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none)ERROR: No matching distribution found for opencv-python
緣由爲什麼?若是咱們如今在 PyPI 上訪問 opencv-python 的文件頁面,將會看到沒有可用的面向 Python 3.8 的軟件包。晚些時候這個問題可能會被修復。可是如今的狀況是,在新的主要版本發佈以後的不久時間內,咱們將沒法下載許多庫。ui
有時候,這些問題只需從新構建庫便可解決,有時候則須要進行一些代碼調整。但無論是什麼問題,Python 的主要版本和軟件包的可用性之間都存在一些滯後。url
2.Python 中的錯誤spa
Python 3.7.0 於 2018 年 6 月 27 日發佈,3.7.1 於 4 個月後 2018 年 10 月 20 日發佈,其中包括許多錯誤修正。因此按照慣例,Python 3.8 未來也會有一個錯誤修復版本,可是鑑於主要版本之間的間隔期爲 18 個月,所以會產生不少新的但不會普遍使用的代碼。這意味着後續版本將具備大量的錯誤修復。orm
3.沒法真正使用新的語法htm
Python 3.8 引入了新語法,但其餘工具還沒有同步跟進以支持新語法,例如自動格式化程序和代碼檢測工具等。除非「配套設施」已同步更新,不然咱們將沒法真正使用新的語法。
因此何時切換至使用主要的新 Python 版本?
至少,咱們須要等到:
全部的庫都明確支持新的 Python 版本。
所依賴的全部工具都明確支持新的 Python 版本。
所以,不妨在新的主要 Python 版本發佈後等待幾個月,咱們再去嘗試。若是確實火燒眉毛,能夠等到第一個小版本更新發布後再嘗試,這裏的狀況是 Python 3.8.1。
Python 3.8 已於前兩週正式發佈,不過目前大多數開發者主要使用的還是 Python 3.7.x 或更舊的版本。
事實上,馬上切換到使用 Python 3.8 可能會引起一些問題。想知道什麼時候切換至 Python 3.8?下文將簡要概述切換主要的 Python 版本以及進行切換時可能會遇到的問題(來自一名開發者的心得經驗)。
1.缺乏軟件包
opencv-python是一個十分受歡迎的軟件包,其下載量約爲 5000 萬。但正如本文提到的同樣,若是你如今(2019年10月28日)嘗試在 Python 3.8 上安裝它會發現並不起做用:
$ docker run python:3.8-slim pip install opencv-pythonERROR: Could not find a version that satisfies the requirement opencv-python (from versions: none)ERROR: No matching distribution found for opencv-python
緣由爲什麼?若是咱們如今在 PyPI 上訪問 opencv-python 的文件頁面,將會看到沒有可用的面向 Python 3.8 的軟件包。晚些時候這個問題可能會被修復。可是如今的狀況是,在新的主要版本發佈以後的不久時間內,咱們將沒法下載許多庫。
有時候,這些問題只需從新構建庫便可解決,有時候則須要進行一些代碼調整。但無論是什麼問題,Python 的主要版本和軟件包的可用性之間都存在一些滯後。
2.Python 中的錯誤
Python 3.7.0 於 2018 年 6 月 27 日發佈,3.7.1 於 4 個月後 2018 年 10 月 20 日發佈,其中包括許多錯誤修正。因此按照慣例,Python 3.8 未來也會有一個錯誤修復版本,可是鑑於主要版本之間的間隔期爲 18 個月,所以會產生不少新的但不會普遍使用的代碼。這意味着後續版本將具備大量的錯誤修復。
3.沒法真正使用新的語法
Python 3.8 引入了新語法,但其餘工具還沒有同步跟進以支持新語法,例如自動格式化程序和代碼檢測工具等。除非「配套設施」已同步更新,不然咱們將沒法真正使用新的語法。
因此何時切換至使用主要的新 Python 版本?
至少,咱們須要等到:
全部的庫都明確支持新的 Python 版本。
所依賴的全部工具都明確支持新的 Python 版本。
所以,不妨在新的主要 Python 版本發佈後等待幾個月,咱們再去嘗試。若是確實火燒眉毛,能夠等到第一個小版本更新發布後再嘗試,這裏的狀況是 Python 3.8.1。