VS Code + uv:高效率建置與管理 Python 開發環境

Ted Liou 2025.06.08 Python 程式設計
uv 是一個能降低開發者管理 Python 與 pip 套件的複雜度的工具。過去我們需要手動安裝與設定各種版本的 Python,來應對各個專案的系統需求。uv 提供許多大幅簡化的指令,讓開發者能用一行指令就完成 Python 安裝、虛擬環境建置、依賴套件安裝等常用功能。

uv 的主要功能有:管理 Python 版本、自動化管理 Python 虛擬環境與依賴套件安裝,開發者僅需針對 pyproject.toml 檔案進行設定,即可讓 Python 專案能輕易的被遷移與維護。另外,透過 uv 來下載 pip 套件速度非常快,解決了「pip 套件下載速度異常緩慢」這令人詬病的問題。

先前的文章中我們提過 StreamDiffusion 這項 AI 工具,在它的 GitHub 上提供的環境建置流程因年代久遠的關係,內容複雜且存在許多版本衝突問題。當開發者需要在不同電腦上建置 StreamDiffusion 環境,每一次都需要經歷這複雜流程的折磨。如果我們導入 uv,就能用它提供的自動化功能來大幅簡化環境建置的流程,甚至能做到一行指令建環境。

系統需求

本文的目標是在 Windows 平台上使用 VS Code 與 uv 來建置 Python 的開發環境,將會使用到命令提示字元與 PowerShell。

建立 VS Code 工作區

VS Code 是以一個資料夾來當成一個工作區,並基於這個工作區來管理程式碼的開發環境,包括我們常在 Python 中使用的 .venv 虛擬環境。

首先,請在電腦的任一位置建立一個空資料夾,並按著鍵盤 Shift 並對資料夾點擊滑鼠右鍵,選擇「以 Code 開啟」。

Windows檔案總管,有一個python-project資料夾,滑鼠右鍵選單正選中以Code開啟選項

VS Code 將會基於我們的資料夾來建立工作區,現在工作區裡面還沒有內容,本文將會使用這個工作區來建立 Python 的開發環境。

空的python-project的VS Code畫面

StreamDiffusion 使用 Python 開發,為了讓 VS Code 支援 Python 語言,需要安裝 Python 的延伸模組。

請從左側選單進入延伸模組介面,搜尋「Python」並安裝啟用。

VS Code的Python延伸模組安裝畫面

至此,VS Code 的 Python 功能支援已完成設定,接下來我們要開始建立 Python 的開發環境。

建立 Python 專案

本文透過 uv 工具來建立 Python 專案,用 uv 的優勢在於能自動化管理 .venv 虛擬環境、透過 pyproject.toml 檔案來設定依賴 (比單用 requirements.txt 更強大)。

安裝 uv 工具

uv 在沒有安裝 Python 的電腦上也能運作,因為它是被設計用來管理 Python,我們要使用它來安裝 Python 核心。

首先,請輸入鍵盤組合鍵「Ctrl + `」來開啟終端機,並輸入以下指令來安裝 uv:

1powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/0.7.2/install.ps1 | iex"

uv 會被安裝到「C:/Users/使用者名稱/.local/bin」路徑中,我們可以開啟檔案總管,輸入「%UserProfile%/.local/bin」來查看,uv 的主程式有 uv.exe 和 uvx.exe。

%UserProfile%/.local/bin路徑的資料夾裡面有uv.exe和uvx.exe兩個檔案

接下來將 %UserProfile%/.local/bin 加入環境變數當中,後續才能在終端機中使用 uv。

1SET PATH=%PATH%;%UserProfile%\.local\bin

安裝 Python 核心

uv 內建指令能快速安裝 Python 核心,請使用 VS Code 的終端機,輸入以下指令來查看目前可用的 Python 版本:

1uv python list

參考下圖的結果,uv 支援 3.8 ~ 3.14 版本的 Python,同時會顯示先前已透過其它方式安裝的 Python 核心。

VS Code終端機中顯示uv列出所有可用的Python版本

StreamDiffusion 主要使用 3.10 系列,本文選擇 3.10.17 版本,請使用 VS Code 的終端機,輸入以下指令來安裝 Python 3.10.17:

1uv python install 3.10.17

Python 安裝好後,接下來即可初始化 Python 專案,並指定這個專案要使用 Python 3.10.17 版本來驅動。請使用 VS Code 的終端機,輸入以下指令來初始化專案:

1uv init
2uv venv --python 3.10.17

uv 會幫 Python 專案建立一個 .venv 虛擬環境,讓安裝在 Windows 平台的 Python 和專案內的 Python 之間相互獨立,防止出現 pip 套件的衝突。

所以,我們也能設定 VS Code 的 Python 環境為 uv 建立的虛擬環境,在開發 Python 的時候 VS Code 才能順利解析語法。請點擊右下角的 Python 版本區塊,選擇路徑是「.\.venv\Scripts\python.exe」的解譯器。

操作VS Code切換虛擬環境

執行 main.py

使用 VS Code 來執行 Python 程式有兩種方式,第一種是在編輯 main.py 的時候點擊右上角的執行按鈕,VS Code 會根據剛才設定的虛擬環境來執行程式,但這樣操作 uv 工具不會作動。因此,本文建議使用 VS Code 的終端機,手動輸入以下指令來執行 main.py。後續如果有變更 Python 專案的設定檔 (pyproject.toml) 或遷移專案後需要重建虛擬環境,uv 才會自動化的幫你做好各種環境的建置。

1uv run main.py

執行 main.py 後,終端機中會印出 main() 裡面寫的 print() 文字。

VS Code終端機中顯示main()的print()印出的文字

操作到這邊,我們已透過 uv 工具在 VS Code 上建置好工作區和 Python 專案的開發環境。現在我們已經能用 VS Code 來開發與執行程式,但開發者通常透過許多現有的套件來開發作品。因此,接下來本文將分別說明應如何透過 uv 來安裝與管理 pip 套件。

管理 pip 套件

uv 與過去使用的 pip 的指令風格差異不大,甚至能用 uv pip install 來取代 pip install,一樣能解決 pip 下載緩慢的問題。由於使用 uv pip 指令來管理套件時不會自動在 pyproject.toml 中更新依賴清單,因此本文建議直接使用 uv 提供的指令。

開發過程中,我們最常使用 uv 的套件安裝、移除指令。如果將 Python 所需的所有套件寫入 pyproject.toml 的依賴清單,當遷移專案後的第一次執行 uv run main.py 或 uv sync,uv 將會自動建立虛擬環境並安裝所有依賴套件,如同過去使用的 requirements.txt。

安裝套件

uv 的安裝套件指令是「uv add」,後面接 pip 的套件名稱。拿用於實作 NDI 影像傳輸的 ndi-python 套件舉例,使用 VS Code 的終端機輸入以下指令即可安裝該套件。

透過這個方法安裝的套件,將會被 uv 自動記錄在 pyproject.toml 中,讓未來能自動化建置專案環境。

1uv add ndi-python

本文發現 uv add 有個問題,因為 ndi-python 最新版的 5.1.1.5 僅支援 macOS,5.1.1.1 才支援 Windows,在像是這種版本發布方式較特殊的套件中,它無法自動選取可用於 Windows 平台的套件版本,會出現這種找不到可用 Wheels 的錯誤訊息。

VS Code終端機中顯示ndi-python的5.1.1.5版本不支援windows錯誤

發生此問題時,開發者需手動查詢這套件的版本內容,本文找到 ndi-python 的 5.1.1.1 版本支援 Windows 平台,最後僅需在安裝指令後加上版本號,例如:

1uv add ndi-python==5.1.1.1

uv 支援從過去使用 requirements.txt 到 pyproject.toml 的快速轉換,請使用 VS Code 的終端機並輸入以下指令,讓 uv 根據 requirements.txt 來安裝套件,並將套件依賴加入到 pyproject.toml。

1uv add -r requirements.txt

刪除套件

uv 的刪除套件指令為「uv remove」,以刪除前文安裝的 ndi-python 舉例,請使用 VS Code 的終端機並輸入以下指令,來刪除該套件。

1uv remove ndi-python

使用 uv remove 刪掉的套件,也會同時從 pyproject.toml 中移除。

依賴清單

前文提到多次的 pyproject.toml 即是 Python 專案的設定檔,其中有一條屬性為「dependencies」,紀載這個專案所有依賴的套件。只要是使用 uv add 指令安裝的套件,都會被自動記錄到這邊。

如果開發者已有準備一個需要安裝的套件清單,除了使用 requirements.txt 方法之外,也能直接將它寫入 dependencies。

假設專案需使用 python-osc 與 5.1.1.1 版本的 ndi-python 套件,請編輯 pyproject.toml,替換 dependencies 的內容為:

1dependencies = [
2    "python-osc",    
3    "ndi-python==5.1.1.1"
4]

編輯 pyproject.toml 檔案後,需將設定值更新到整個 Python 專案中。請使用 VS Code 的終端機並輸入以下指令,來讓 uv 根據 pyproject.toml 的內容安裝或刪除套件。

1uv sync

參考資料

Ted Liou

請追蹤我,這裡會分享實用的技術研發資訊!