Monday, July 16, 2018

python 依賴宣告、依賴隔離、程式碼排版

開發 python 的程式,要遵循好的開發紀律,避免日後的可移植性問題,最好還是在最初就做好「依賴宣告」和「依賴隔離」、「程式碼排版」

(*) 如何安裝 virtualenv 工具? (這個步驟後來可以省略,因為 python 3.3 之後,內建提供了 venv 模組,可以部分取代 virtualenv)

pip install virtualenv


依賴隔離  (dependency isolation) -- 建立虛擬環境
cd my_project_folder             // 先進入到 git 管理的 python 開發資料夾
兩種作法:
作法 1 (簡單、常用)
python -m venv my_env          // 建立一個類似 node_modules 的 my_env 資料夾。
作法 2
virtualenv my_env                      // 建立一個類似 node_modules 的 my_env 資料夾。
                  //  virtualenv 也可以在啟動時,用 -p 參數指定要用的 python 版本。

依賴隔離  (dependency isolation) -- 啟動、操作、離開虛擬環境
source my_env/bin/activate         //  啟動 python 的虛擬環境
pip install autopep8                 //  在虛擬環境中安裝套件 (作法1)
pip install -r requirements.txt   //  在虛擬環境中安裝套件 (作法2)
deactivate                              //  離開虛擬環境

依賴宣告 (dependency declaration)
啟動虛擬環境之後…
pip install -r requirements.txt          // 根據依賴宣告檔來安裝套件
pip freeze > requirements.txt          // 重新生成依賴宣告

程式碼排版 (linter)
autopep8 --in-place --aggressive