首先安裝 python,依照 官網 的指示,下載正確的版本並執行就可,重點在以下。
虛擬環境的管理平台許多人使用 anaconda,許多教 python 的課程第一堂就是不管三七二十一先安裝再說,但我用了一陣子之後覺得它實在太笨重了,早有掙脫的想法,欣見原生的 python 已經具有虛擬環境管理模組,就是 venv,使用起來也挺容易的,下達以下指令:
python3 -m venv envName
就會在當前目錄下建立一個資料夾 envName,裡面放置了一個環境所必須有的基本配備,就是 python 直譯器和套件管理工具 pip,還有啟動此環境所需要的 script;日後該環境所有的套件都會限縮在這裡面,玩壞了或不滿意就整個砍掉,乾乾淨淨。要啟動該該環境則使用此指令:
source envName/bin/activate
若啟動成功,command line 的提示詞就會出現該環境的名稱如下:
(envName) newman@nmMac DataScience %
下一步就是安裝開發環境,以往是習慣安裝 jupyter notebook,然後在 command line 啟動之再開啟 browser 使用,實在也有點小麻煩;因為好像有聽說 vscode 裡面也可以用 notebook,所以我暫緩動作,先用 vs code 打開專案看看。…結果果然 notebook 檔案的確正確開啟,但怎麼選都選不到剛剛建立的環境!
經過一番掙扎,終於搞懂了,不同於 anaconda 有一個中央註冊機制,可以列出納管的所有虛擬環境,venv 是分散自治的,所有運作資訊都保存在一個資料夾裡面,所以 vscode 當然就無法偵測到它的存在了,這該怎麼辦才好?解決方法很簡單,把虛擬環境建立在專案資料夾裡面就好了!想起來也很合理,vscode 不可能隨時在掃描整個電腦哪邊建立了新的環境了,但若在專案目錄裡就算合理,利用前述指令在專案目錄裡建立虛擬環境:
python3 -m venv .venv
指令剛下完 vscode 就很機警的提示說「發現新環境」,真乖。
這個設計哲學就是一個專案一個環境,非常合理,原始的 python 環境在安裝後的功用只有用到 venv 然後就貢起來束之高閣,從此就不會再動不動就套件版本衝突了啦。只是這個虛擬環境資料夾會隨著套件安裝的增多而越來越大,記得必須加到 gitignore 裡面,以免增加 git server 無謂的負擔。我也為自己訂下一個開發原則,就是固定把環境名稱叫做 .venv,這樣在 mac 它會成為隱藏資料夾,平時寫程式時也不須跑出來礙眼了。
vscode 跨平台表現非常優越,幾乎取代了所有的 ide,手邊在開發的幾種專案類型都是用它,包含 angular,python with jupyter notebook,python with flask,nodejs,都是活在其上的。
歸納以上筆記用到的指令:
# 建立環境,記得在專案目錄內:
python3 -m venv .venv
# 啟動環境,啟動後可以在裡面用 pip install 安裝套件:
source .venv/bin/activate
# 列出此環境安裝了哪些套件
pip list
# 將目前環境的所有套件連同版本,輸出到一個檔案
# 當開發完成要把程式連同環境 deploy 到雲端 (我是用 azure) 時需要用到此檔案,很重要
pip freeze > requirements.txt
# 離開環境
deactivate
# 砍掉環境:
rm -rf .venv
紐曼 Newman,2023/3/17
導覽頁:紐曼的技術筆記-索引