Python 3.8 已發布現在是切換至新版本的好時機嗎?
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。