如何在多人工作站升級自己的 Python

閱讀時間約 4 分鐘

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 或以上。

困難相似不相同

在多人一起開發的工作站升級 python 這種主要程式比較複雜,用管理員權限(sudo)升級最快但會影響其他人的開發環境,釐清需求後我想要不影響整體最低限度升級自己的 venv 的虛擬環境,實現多個版本的 venv 虛擬環境做到有多個不同 venv 虛擬環境版本可以切換。

這裡需要提一下 python venv 虛擬環境的運作方式,venv 是一個 python 模組,用這個模組啟動的 python 會在系統上建立一個「乾淨」的 python 執行環境。在系統提示下執行 python3 -m venv .venv 指令,系統會 clone 一份對應版本的 python 執行環境到指定的 .venv 資料夾內,接著執行 source .venv/bin/activate 指令可以啟動 venv 虛擬環境,用 python --version 可以檢查虛擬環境版本是 3.7.3 與系統版本一致。當我們要開發的專案程式需要搭配不同 python 套件組合很適合開多個 venv 虛擬環境來切換進行調適,用 venv 虛擬環境開發最大好處是不會汙染系統的 python 環境,不小心玩壞掉直接砍掉 .venv 目錄即可心裡沒負擔。

(附上 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 不再報錯了。

raw-image


小結論

從結果回顧升級過程並不困難,比較困難的是過程中釐清自己需求的跟找到適合自己的方法、然後親自去嘗試。如果你的狀況剛好跟我很接近,是在多人開發的 Linux 工作站、專案需求需要多個版本的 python venv 來調適且需要升級新版本來讓 IDE 的 pylint, black formatter 運作正常的話,不妨直接套用或在這個基礎上打造屬於你的升級方法。

avatar-img
14會員
61內容數
WarrenLo's 軟體設計武功祕笈
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
Warren Lo的沙龍 的其他內容
在網路上查找可以發現有很多類別圖的 6 種關係的說明與示例,通常不太容易難取得共鳴。主要有兩個原因: 1. 對於這些關係線的定義混淆,導致無法判斷滿足條件與使用時機 2. 缺少生活相關的具體案例,很難理解這些關係所對應的抽象概念
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
聊到 Serial 通訊就一定會提到 COM Port,它是微軟定義的一個經典 Serial 通訊實作。COM Port 在筆電還不普及的年代可以很輕鬆在 PC(桌機)的主機板上找到有標示 COM1 或者 COM2 的通訊接口,這些就是最常見的 COM Port 通常搭載的都是 R232 的通訊規格
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
物聯網裝置跟電腦一樣處理資料過程仰賴記憶體,不同類型的資料必須放在不同的記憶體空間。RD 會按照功能需求去規劃這些數據儲存空間,就像設計師規劃客廳、廚房、衛浴與臥室等居住空間一樣。各個空間的規劃原則上不會允許重疊,如此才能確保不同資料間不會發生互相覆蓋導致記憶體錯誤發生。
在網路上查找可以發現有很多類別圖的 6 種關係的說明與示例,通常不太容易難取得共鳴。主要有兩個原因: 1. 對於這些關係線的定義混淆,導致無法判斷滿足條件與使用時機 2. 缺少生活相關的具體案例,很難理解這些關係所對應的抽象概念
UART 轉換完成的 Serial 訊號已經可以用來傳輸通訊了,那為什麼還要把 UART 轉出來的訊號再轉換成成其他的 Serial 介面,像是 RS232/RS485 再進行傳輸呢?原因是 UART 的 Serial 訊號傳輸的距離實在太短了
Serial 通訊數據必須先在 UART 元件把 Parallel 轉成 Serial,EIA Driver 會把 Serial 轉成特定的 Serial 訊號。UART 數據轉換要考慮兩個關鍵點,如何讓資料從直行變橫列(躺平)的方法,還要考慮如何控制 Serial 訊號輸出
聊到 Serial 通訊就一定會提到 COM Port,它是微軟定義的一個經典 Serial 通訊實作。COM Port 在筆電還不普及的年代可以很輕鬆在 PC(桌機)的主機板上找到有標示 COM1 或者 COM2 的通訊接口,這些就是最常見的 COM Port 通常搭載的都是 R232 的通訊規格
問題來了,如果在一組 Master-Slave 在通訊過程中出現其他的裝置「插嘴」的狀況會怎麼樣?因為迴路只有一條,所以只要在同一個通訊迴路上同時有兩台裝置發出訊號,結果就是兩個資料封包互相對撞雙雙損毀…
物聯網裝置跟電腦一樣處理資料過程仰賴記憶體,不同類型的資料必須放在不同的記憶體空間。RD 會按照功能需求去規劃這些數據儲存空間,就像設計師規劃客廳、廚房、衛浴與臥室等居住空間一樣。各個空間的規劃原則上不會允許重疊,如此才能確保不同資料間不會發生互相覆蓋導致記憶體錯誤發生。
你可能也想看
Google News 追蹤
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
工作、學校、日托中心、圖書館、遊樂場、合唱團──這些原本在曼奇蒂一家人生活中堅若磐石的可靠存在,都在一天之內轉眼消失。曼奇蒂有如失去了重力在太空中漂浮,她抓住任何還稱得上穩定的事物,並且盡力避免身邊的人偏離軌道。 三月十六日,也就是紐約市全面停擺的幾天前,曼奇蒂任職的特許學校已關閉校園。她也像
Thumbnail
提出需要是一種愛的邀請,但關鍵在於技巧,需要誠實且溫柔。在溝通中,清晰表達自己的感受、目的、期待與渴望是必不可少的。避免產生誤解,釐清感受並重複關鍵訊息,確保對話真正出自善意。這篇文章提供瞭如何以溫和與善意的方式提出期待的建議。
Thumbnail
多樣性:色彩斑斕的畫布 走進一個美術館,映入眼簾的是各式各樣的畫作:有印象派的柔和筆觸,也有抽象派的狂野線條,還有寫實主義的精緻細節。你的作品集也許就如同像這樣,每一頁都讓人驚艷。
Thumbnail
本文探討了網紅將網路上的人氣轉化到現實生活中的方式。主要包括出書、演講或活動邀約、經營實體公司三個賺錢方式,並提供了個案分析及賺錢潛力的計算。文章也討論了網紅經營實體公司時遇到的困難,以及線上課程販售的可能性。文末作者鼓勵孩子在網路上尋找無限可能性,並從中發掘問題提出合適的解決方案,向成功邁進。
Thumbnail
出外求學工作,如果學校或職場在距離自己老家有點距離的地方,首要之務就是需要解決住房的問題。在外打拼,尋找租房要準備些什麼呢? 這篇文章分享我在2022年以及2024年的租屋經驗,並且依租房準備的時間軸來當作這篇文章的主題時間軸。 在開始尋找物件之前 如果對於想租屋的地方已經有先一步的認識,
Thumbnail
嘿,大家新年快樂~ 新年大家都在做什麼呢? 跨年夜的我趕工製作某個外包設計案,在工作告一段落時趕上倒數。 然後和兩個小孩過了一個忙亂的元旦。在深夜時刻,看到朋友傳來的解籤網站,興致勃勃熬夜體驗了一下,覺得非常好玩,或許有人玩過了,但還是想寫上來分享紀錄一下~
Thumbnail
工作、學校、日托中心、圖書館、遊樂場、合唱團──這些原本在曼奇蒂一家人生活中堅若磐石的可靠存在,都在一天之內轉眼消失。曼奇蒂有如失去了重力在太空中漂浮,她抓住任何還稱得上穩定的事物,並且盡力避免身邊的人偏離軌道。 三月十六日,也就是紐約市全面停擺的幾天前,曼奇蒂任職的特許學校已關閉校園。她也像
Thumbnail
提出需要是一種愛的邀請,但關鍵在於技巧,需要誠實且溫柔。在溝通中,清晰表達自己的感受、目的、期待與渴望是必不可少的。避免產生誤解,釐清感受並重複關鍵訊息,確保對話真正出自善意。這篇文章提供瞭如何以溫和與善意的方式提出期待的建議。
Thumbnail
多樣性:色彩斑斕的畫布 走進一個美術館,映入眼簾的是各式各樣的畫作:有印象派的柔和筆觸,也有抽象派的狂野線條,還有寫實主義的精緻細節。你的作品集也許就如同像這樣,每一頁都讓人驚艷。
Thumbnail
本文探討了網紅將網路上的人氣轉化到現實生活中的方式。主要包括出書、演講或活動邀約、經營實體公司三個賺錢方式,並提供了個案分析及賺錢潛力的計算。文章也討論了網紅經營實體公司時遇到的困難,以及線上課程販售的可能性。文末作者鼓勵孩子在網路上尋找無限可能性,並從中發掘問題提出合適的解決方案,向成功邁進。
Thumbnail
出外求學工作,如果學校或職場在距離自己老家有點距離的地方,首要之務就是需要解決住房的問題。在外打拼,尋找租房要準備些什麼呢? 這篇文章分享我在2022年以及2024年的租屋經驗,並且依租房準備的時間軸來當作這篇文章的主題時間軸。 在開始尋找物件之前 如果對於想租屋的地方已經有先一步的認識,