Launchpad now runs on Python 3
由 darkranger 在 週六, 10/09/2021 - 17:15 發表
由 Colin Watson 所撰寫的文章《Launchpad now runs on Python 3!》,其內容總結了將 Launchpad 軟體協作平台從 Python 2 移植到 Python 3 的歷程,值得參考。由於 Python 2 的最終版本(2.7.x)已於 2020 年 1 月停止維護,因此勢必會有許多原採用 Python 2 作為開發語言的組織,得考慮安排期程,將程式碼轉換至 Python 3 的環境。
DR 自己也是使用了好幾年的 Python,不過很幸運地(或者說是很無能地?),主要都是拿來寫寫簡單的腳本而已。所以手上若有舊的 Python 2 程式碼需要移植到 Python 3,通常不會遇到什麼困難。能不能跑很容易就可以測出來,也很容易修正。儘管在過去幾年裡,有時因部署環境存在不一致性,我們可能會被教育、或者鼓吹要盡量寫出可同時相容於 2 跟 3 的程式碼。然而在實務上,除非程式需求是單純到宛如學生作業的等級,否則 2 跟 3 之間存在不相容作法的情形,很難完全被規避掉。
倘若無法有直接共通的寫法,便會需要在程式裡做版本判斷,或者是索性放棄相容性。稍微翻查了一下,在 DR 的 Python 程式碼庫裡,有一小部份的程式,會去檢查 Python 版本是 2 或 3,並依此執行不同的內容。其餘的程式則都是針對單一版本做開發及測試,不特別保障不同版本的情形,而其中新開發的程式自然就會是針對 Python 3 了。