[Python]如何用uv套件建置python專案與虛擬環境?

認識到python的uv套件得由當初學習Cline的MCP服務端(server)配置說起。Cline是一款VSCode的插件,可視為MCP客戶端(client),同時可讓開發者快速且方便地在VSCode環境中配置MCP server,並藉由與AI大語言模型搭配來訪問各款MCP server,以完成開發者的需求。若要體驗和進一步了解MCP的功效,Cline是一款快速上手的入門插件,使用方式可參考官網資料

回到uv套件,當在Cline中配置MCP server的JSON檔案時,特別注意到檔案內引入"command":"uv",完整JSON內容如下。後來藉由Chatgpt的說明內容和套件網頁了解uv是一套可用於管理python套件的工具,除了比pip快上10倍~100倍之外,同時可建立python專案和虛擬環境,基本上可取代pip, pip venv。
{
"mcpServers": {
"weather": {
"command": "uv",
"timeout": 60,
"args": [
"--directory",
"/home/raspberry/uv/weather",
"run",
"weather.py"
]
"transportType":"stdio"
}
}
}

uv套件的安裝相當簡便,同時指令也相當直觀,下列的安裝過程和指令操作環境為ubuntu 23.04 desktop。

安裝 uv

1.在終端機中,運行下列指令,即可開始安裝uv。

bash 复制代码
curl -Ls https://astral.sh/uv/install.sh | bash

2.安裝後,重啟終端機,或運行下列指令。

bash 复制代码
source ~/.profile   # 或 ~/.bashrc, ~/.zshrc

3.確認是否安裝成功並檢查版本。

bash 复制代码
uv --version

建立python專案

1.在終端機中,運行下列指令,即可建立一個名為myproject的python專案資料夾。

bash 复制代码
    mkdir myproject #建立myproject資料夾
    cd myproject #切換到myproject資料夾
    uv init #將myproject資料夾初始化為一個python專案資料夾

2.當myproject的python專案資料夾被建立後,資料夾中即出現一些檔案,大致如下:
pyproject.toml : 記錄此專案所需套件(開發者手動指定)與配置(如 `scripts`, `dependencies`)
main.py: 預設python程式進入點,可自定義內容。
.gitignore: 用於上傳雲端git平台時,忽略 .env或開發者指定檔案等等帶有敏感資訊的檔案。
README.md:專案說明文件
Note: 用於確保版本和依賴一致性的uv.lock檔案,在專案資料夾被初始化建立後還不會出現,其在執行uv add或uv sync後才會產生,顯而易見地說明其記錄著安裝版本和依賴的資訊,以利後續clone該專案的開發者在相同環境下使用。

建立和啟動虛擬環境

1.在終端機的專案資料夾路徑中,運行下列指令來建立虛擬環境。

bash 复制代码
uv venv     #建立虛擬環境

運行結果與執行py -m venv myproject_env的結果很類似,即會建置出一個.venv的資料夾,該資料夾中也已預產生一些資料夾和檔案,其中lib資料夾即是紀錄未來在這個虛擬環境中安裝的套件。

2.運行下列指令來啟動並進到虛擬環境。

bash 复制代码
source .venv/bin/activate #啟用虛擬環境

Note:進到該虛擬環境中,即可依據專案需求利用uv add安裝套件,這些安裝在虛擬環境中的套件不會與本機環境中的套件相互衝突,這也是虛擬環境的優點。

整體來說,相較於之前使用的python venv套件,uv套件除了可建置虛擬環境之外,尚可建置python專案,其中也將git整合在一起。同時使用uv venv+uv init來建置新專案,整合性與效能也確實比較完整。下列尚有一些由chatgpt提供的uv套件資料,包含相類似套件的比較,以及常用指令,一併供參考。

相关推荐
tangweiguo030519876 小时前
LangGraph 入门:多智能体工作流实战(阿里云百炼)
人工智能·python·langchain
暮色念了红尘6 小时前
CC Switch — Ubuntu 20.04 可用版本
ubuntu·ai·rust·ubuntu 20.04·vibe coding·cc swich
Ares-Wang6 小时前
Flask》》Flask-Caching缓存插件
python·缓存·flask
明如正午6 小时前
转换pdf文件为md文件【markitdown+pdf4llm】
python·pdf·markitdown·pdf4llm
咯哦哦哦哦6 小时前
Foundationpose环境配置【非conda--纯UV】(linux22.04+python3.10)
python·pip·uv
Irissgwe6 小时前
LangChain之核心组件(消息与提示词模板)
人工智能·ai·langchain·llm·langgraph
码途漫谈6 小时前
Easy-Vibe开发篇阅读笔记(十三)——附录之用 Dify 搭建知识库问答系统
笔记·ai·开源·ai编程
AI进化营-智能译站6 小时前
Jazzy ROS2入门指南系列04-如何在ROS2中创建工作空间,怎么编译ROS2项目
ai
嵌入式小企鹅6 小时前
RISC-V车规专委会成立、AI模型集中开源、半导体产能加速爬坡
人工智能·学习·ai·程序员·算力·risc-v·半导体
俊哥V6 小时前
每日 AI 研究简报 · 2026-04-29
人工智能·ai