Python Environment Tips

使用 Python 首要注意的就是版本選擇。目前最新穩定的版本為 3.12.0,其中,大版本已維持多年,小版本則約半年到一年進行更新,主要著重於性能和安全性的提升。

若選擇使用的版本太新,往往一堆套件還無法支援,導致程式無法運作。在 2023/11/26 的當下,推薦使用 Python 3.11 是相對通行且套件支援度高又不會太舊的版本,如 Stable Diffusion 等 AI 應用需要的 PyTorch 套件尚不支援 Python 3.12。如果再保守一點可以選擇 Python 3.10,套件的支援度和穩定度會更高些。

同樣的,各套件可能也會限定其引用其他套件的版本,以避免版本更新,導致因不相容而無法運行。

補充:目前大部分 AI 相關的套件,仍使用 NVidia 繪圖晶片專屬的 CUDA 語言開發,故包含 Stable Diffusion 等應用都必須要有該硬體才能獲得最大效能。(用DirectML能跑但性能不及CUDA)

由於 Python 的套件眾多且對版本的卡控較為嚴檢,故會建立需求清單來管理程式運行所需要的套件,並透過虛擬環境的方式來指定使用的Python版本,並確保開發與最終部署環境的一致。以下以Windows的命令提示字元來進行操作:

  • 套件需求清單 requirements.txt
    • 以當前環境建立套件清單:
      pip freeze > requirements.txt
    • 用套件清單安裝環境:
      pip install -r requirements.txt
    • 若擔心要部署環境無法線上下載需要的套件,也可建立 .whl 離線安裝包
      • 建立 .whl 離線安裝包:
        pip wheel -w wheels -r packages.txt
      • 用離線安裝包安裝套件:
        pip wheel -w wheels -r packages.txt
  • Python Virtual Environment (venv)
    • 建立虛擬環境
      • 進入要建立虛擬環境的目錄中並輸入:
        python -m venv {虛擬環境名稱}
      • 完成後,系統會以環境預設的Python版本,在目錄中新建一個以虛擬環境名稱命名的目錄
      • 也可指定Python版本建立虛擬環境:
        C:\Python\Python310\python.exe -m venv {虛擬環境名稱}
    • 啟動虛擬環境
      • 切換到虛擬環境的目錄後輸入:
        cd venv\scripts
        activate
      • 這時dos提示符前面會出現當前虛擬環境的名稱
    • 遷移虛擬環境
      • 啟動虛擬環境後,建立套件清單(也可直接建立離線安裝包):
        pip freeze -l > requirements.txt
      • 複製整個虛擬環境的目錄到新的主機 在新主機中啟用虛擬環境後,從txt檔中安裝套裝:
        pip install -r requirements.txt

留言

Leave a comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.