how to upgrade your python on workstation
現在工作用的程式語言是 python,開發環境是 Linux Debian 10 的一個遠端、多人共同開發的工作站(Workstation),執行環境是 python 的 venv 虛擬環境,PC 跑的 IDE 用的是微軟 vscode,某次我在 IDE 的右下角處注意到一個很小很小的 x 符號,點開後 IDE 提示有 pylint 跟 black formatter 異常,當時不影響我的開發工作就把這事就忘了。在某天的部門分享會上,同事說他 IDE 升級後出現了一樣的錯誤,手上程式碼沒有 pylint black-format 檢查上不了 gitlab,我又點開了那個很小很小的 x 符號,裡面 logs 提示的解決方式是升級 python 3.8 或以上。
(附上 venv 相關指令)
$ python3 -m venv .venv # 使用模組 venv 建立虛擬環境,虛擬環境的工作目錄是 .venv
$ source .venv/bin/activate # 啟動 venv 虛擬環境,成功啟動後會自動在系統提示字元會附加 (.venv)
(.venv) $ python --version # 檢查 python 版本
(.venv) $ pip install -r requirement.txt # 安裝這個 venv 環境所需的 python 套件(requirement.txt)
(.venv) $ deactivate # 退出 venv 虛擬環境
所以要在 Local 端不影響系統環境的狀態下升級 python 3.8 以上的版本,更適合的的處理方式是從 Python 網站拉原始碼下來自己編譯,再用編譯出來的新版本 python 來建立 venv 虛擬環境。目標是在自己的帳號底下建立新版本的 python,從下載到編譯按照以下方法,換成其他版本做法一樣。
$ cd ~/ # 先切到自己的 Home 目錄
$ wget https://www.python.org/ftp/python/3.8.17/Python-3.8.17.tar.xz # 用 wget 下載 Python 原始碼
$ tar zxvf Python-3.8.17 # 解壓縮
$ cd Python-3.8.17 # 切換目錄
$ ./configure —enable-optimizations # 建立編譯用組態檔
$ make -j 4 # 編譯程式
$ python --version # 檢查版本,看到 python 3.8.17 成功
$ python -m venv .venv3817 # 用新的 python 建立 venv 環境
完成 python 升級後的 IDE 不再報錯了。
從結果回顧升級過程並不困難,比較困難的是過程中釐清自己需求的跟找到適合自己的方法、然後親自去嘗試。如果你的狀況剛好跟我很接近,是在多人開發的 Linux 工作站、專案需求需要多個版本的 python venv 來調適且需要升級新版本來讓 IDE 的 pylint, black formatter 運作正常的話,不妨直接套用或在這個基礎上打造屬於你的升級方法。