Python

Checking versions before using python

CentOS Linux 系統提供的 python3 指令版本為 python 3.6.8。注意!使用 python 指令為版本 2.7.5,請使用 python3 指令。

若需要其他版本的 python,請自行安裝相關套件並設定好環境,建議安裝 micromamba 或 poetry 為佳。不建議安裝 Anaconda 是因為下載安裝太多沒有使用到的套件,使體積太過龐大。

養成好習慣的重點提醒(module purge; module load; module list)

進行新的任務時請將舊任務的環境清除,或是重開一個 Terminal 就等於重新執行( source )一次shell,而環境使用最新的 ${HOME}/.bashrc 。注意一點就是,不同編譯器之間最好要視為是不相容的,這樣環境單純一些(Linux 作業系統是預設 gcc 系列編譯器,但也有 python2.7 和 python3.6 ,如果你不另外 module load 的話),出錯時要 debug 也會容易一些。python 跟 icc都是編譯器,按照規則不要設定到讓他們同時存在並使用到他們。先使用 module purge 的目的就是將 intel icc相關套件環境設置清乾淨。

載完模組之後,也使用 module list 確認一下實際載入的模組有哪些。有些管理員很厲害把modulefiles設定的非常詳細不用依靠使用者判斷正確性,不會讓使用者載入跟目前環境有衝突的模組,所以一但衝突就會卸載舊的衝突模組。而實驗室的 [VAPOR] 比照國網模組建立的方式,為了讓模組的使用能夠更靈活一些,而不會太綁手綁腳,判斷模組之間有沒有衝突就是使用者要有的能力了。

[USER@VAPOR ***]$ module purge[USER@VAPOR ***]$ python --versionPython 2.7.5[USER@VAPOR ***]$ which python/usr/bin/python[USER@VAPOR ***]$ python3 --versionPython 3.6.8[USER@VAPOR ***]$ which python3/usr/bin/python3

Micromamba User Guide

WRF-Python from GeoCAT Library

miniforge (modulefiles)

使用模組載入 miniforge-python

[USER@VAPOR ***]$ module purge[USER@VAPOR ***]$ module avail [USER@VAPOR ***]$ module load Compilers/python/3.10.12[USER@VAPOR ***]$ module list

anaconda

mamba

啊!!! 要用 anaconda 請自行安裝處理啦

使用 conda 系列的指令來完成 python 模組安裝和環境管理,對使用者非常方便但同時也將環境搞得很複雜(一堆不會用到的模組也被載下來了,對管理員來說非常恐怖,若裝在系統 SSD 上,還可能減少 SSD 的壽命)。所以需要者請自行處理安裝問題。認真覺得,不如用 docker 好了

poetry

趨勢上的下一代管理套件?小而美,要使用什麼舊安裝什麼及其依賴套件

未來不想學 docker / k8s 的話,趨勢上比較建議用這個。一樣請自行處理安裝問題。