2026年1月1日 星期四

py3.11 venv build for CUDA

 在 Windows 11 上,你不能直接在同一個虛擬環境(venv)裡「降級」Python,因為虛擬環境是與建立它的那個 Python 執行檔(你目前是 3.13)綁定的。

要切換到 Python 3.11,最正確且穩定的做法是:安裝 Python 3.11 主程式,並建立一個新的虛擬環境。

以下是標準作業流程:


步驟 1:安裝 Python 3.11

  1. 前往 Python 官網下載頁面 (3.11.9)

  2. 下載 Windows installer (64-bit)

  3. 安裝時請務必勾選:

    • Add Python to PATH (將 Python 加入路徑)。

    • 如果系統已有 3.13,建議選擇 Customize installation,確保它安裝在獨立目錄。


步驟 2:確認 3.11 安裝成功

打開新的 PowerShell 或 CMD,輸入以下指令來確認系統能找到 3.11:

PowerShell
py -3.11 -V

註:Windows 通常會安裝 py 啟動器,這讓你同時管理多個版本。


步驟 3:建立新的 Python 3.11 虛擬環境

回到你的專案目錄(例如 D:\py3_env\),建立一個全新的資料夾來存放 3.11 的環境:

PowerShell
# 1. 切換目錄
cd D:\py3_env\

# 2. 指定使用 Python 3.11 建立虛擬環境 (資料夾取名為 venv311)
py -3.11 -m venv venv311

# 3. 啟動新的環境
.\venv311\Scripts\Activate.ps1

步驟 4:在新環境安裝支援 RTX 5060 的套件

由於 Python 3.11 的相容性遠高於 3.13,現在你可以嘗試安裝更穩定的 PyTorch 版本:

PowerShell
# 升級 pip
python -m pip install --upgrade pip

# 安裝支援 CUDA 12.4 的 PyTorch
pip install torch torchvision --index-url https://download.pytorch.org/whl/cu124

步驟 5:再次測試(關鍵的一步)

執行你之前的 test_gpu.py

PowerShell
python .\test_gpu.py

💡 為什麼 3.11 會比 3.13 好?

  1. 預編譯二進位檔 (Wheels):大多數 AI 套件(如 torchaudio)現在都完整支援 3.11,但 3.13 因為太新,很多時候只有源碼,沒有編譯好的檔案,導致安裝報錯。

  2. 算力支援:雖然 RTX 50 系列 (sm_120) 真的很新,但在 3.11 環境下,即便要編譯或偽裝架構,穩定性也會高很多。


補充:如果 3.11 依然報錯 no kernel image

如果在 3.11 下執行 test_gpu.py 還是出現 sm_120 not compatible,請在該環境下執行這行指令再測試:

PowerShell
$env:TORCH_CUDA_ARCH_LIST="9.0"
python .\test_gpu.py

建立完 3.11 環境後,python -V 應該會顯示 3.11.x。請試試看這次能否成功執行運算?

沒有留言:

張貼留言