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。