使用uv管理Python項目的詳細說明
下面是一個詳細的使用說明,介紹如何使用 uv 管理 Python 項目,包括安裝、初始化項目、管理依賴與虛擬環(huán)境等方面:
1. 安裝 uv
uv 是由 Astral 推出的基于 Rust 編寫的 Python 包和項目管理工具,號稱“Python 的 Cargo”。你可以通過多種方式安裝 uv,例如:
macOS/Linux:
curl -LsSf https://astral.sh/uv/install.sh | sh
Windows:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
通過 pip 安裝:
pip install uv
安裝后,可使用 uv help
檢查是否安裝成功。
2. 初始化項目
使用 uv 初始化項目非常簡單。只需創(chuàng)建一個空文件夾,然后運行:
uv init myproject
這會在項目目錄中生成以下幾個文件:
- pyproject.toml:記錄項目名稱、版本、描述、所需 Python 版本以及依賴列表。
- .python-version:記錄當前使用的 Python 版本。
- README.md 和 .gitignore 等文件。
例如,創(chuàng)建成功后的目錄結(jié)構(gòu)可能如下:
myproject/ ├── .gitignore ├── .python-version ├── hello.py ├── pyproject.toml └── README.md
3. 同步環(huán)境與虛擬環(huán)境管理
同步依賴
首次進入項目后,運行以下命令可自動:
- 檢測或下載合適的 Python 版本;
- 創(chuàng)建項目專用的虛擬環(huán)境(通常位于
.venv
目錄下); - 根據(jù)
pyproject.toml
和現(xiàn)有依賴生成或更新uv.lock
鎖定文件; - 同步依賴到虛擬環(huán)境中。
uv sync
運行后,若項目沒有額外依賴,uv.lock
文件中只會記錄最基本的信息。
創(chuàng)建和管理虛擬環(huán)境
如果需要手動管理虛擬環(huán)境,你可以使用:
創(chuàng)建虛擬環(huán)境:
uv venv myenv
若需要指定 Python 版本:
uv venv --python /path/to/python myenv
激活虛擬環(huán)境:Linux/macOS 下:
source myenv/bin/activate
Windows 下:
myenv\Scripts\activate
4. 管理依賴
uv 提供了類似于 npm 或 Cargo 的依賴管理命令,可以非常便捷地添加、刪除或更新依賴包。
添加依賴
例如,添加 pandas 依賴:
uv add pandas
這時,uv 會自動解決 pandas 及其依賴,并更新 pyproject.toml
(記錄依賴)和 uv.lock
(記錄所有詳細依賴版本信息)。
刪除依賴
刪除依賴也同樣簡單:
uv remove pandas
此命令會自動卸載 pandas 及其不再需要的依賴,同時更新鎖定文件。
分組管理依賴
你還可以為開發(fā)環(huán)境和生產(chǎn)環(huán)境分別添加依賴,例如:
添加開發(fā)環(huán)境依賴:
uv add --group dev pandas
添加生產(chǎn)環(huán)境依賴:
uv add --group production requests
這些分組信息會記錄在 pyproject.toml
的 [dependency-groups]
部分。
5. 運行項目
與傳統(tǒng)直接調(diào)用 python hello.py
不同,uv 建議你使用統(tǒng)一的命令來運行項目代碼。你可以使用:
uv run hello.py
該命令會自動在項目的虛擬環(huán)境中執(zhí)行代碼,確保所有依賴都已正確安裝。
6. 其它 uv 命令
- uv pip:提供與 pip 兼容的接口管理包,例如安裝、卸載、列出包等。
- uv lock:根據(jù)
pyproject.toml
更新或生成uv.lock
文件,記錄所有包的精確版本。 - uv tree:以樹狀結(jié)構(gòu)顯示項目的依賴關系,幫助你快速了解依賴層次結(jié)構(gòu)。
- uv python find:查找已安裝的 Python 版本。
- uv python list:列出可供安裝的 Python 版本以及系統(tǒng)中已安裝的版本。
- uv python install <version>:將
<version>
替換為您希望安裝的多個 Python 版本號,例如3.10
3.11 3.12
pypy@3.10
。 - uv python pin <version>:固定當前目錄下使用的python版本。
- uv run -p <version> python:進入指定python版本的解釋器交互環(huán)境。
這些命令使得整個項目管理體驗更為統(tǒng)一和高效。
7.總結(jié)
- 當前目錄下默認用的python版本是uv python find對應版本.
- 當前目錄下指定版本用uv python pin <version>會在當前目錄下生成一個.python-version文件。
- 指定的Python版本運行指令: uv init/add/remove/run/pip -p <version>。
到此這篇關于使用uv管理Python項目的文章就介紹到這了,更多相關uv管理Python項目內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Python通過TensorFLow進行線性模型訓練原理與實現(xiàn)方法詳解
這篇文章主要介紹了Python通過TensorFLow進行線性模型訓練原理與實現(xiàn)方法,結(jié)合實例形式詳細分析了Python通過TensorFLow進行線性模型訓練相關概念、算法設計與訓練操作技巧,需要的朋友可以參考下2020-01-01python面向?qū)ο蠓▽崿F(xiàn)圖書管理系統(tǒng)
這篇文章主要為大家詳細介紹了python面向?qū)ο蠓▽崿F(xiàn)圖書管理系統(tǒng),具有一定的參考價值,感興趣的小伙伴們可以參考一下2019-04-04關于Python八大排序?qū)崿F(xiàn)方法(冒泡排序、快速排序等)
這篇文章主要介紹了關于Python八大排序?qū)崿F(xiàn)方法,主要有基數(shù)排序、歸并排序、堆排序、簡單選擇排序、直接插入排序、希爾排序、快速排序、冒泡排序等,需要的朋友可以參考下2023-03-03Python?中如何使用requests模塊發(fā)布表單數(shù)據(jù)
requests 庫是 Python 的主要方面之一,用于創(chuàng)建對已定義 URL 的 HTTP 請求,本篇文章介紹了 Python requests 模塊,并說明了我們?nèi)绾问褂迷撃K在 Python 中發(fā)布表單數(shù)據(jù),感興趣的朋友跟隨小編一起看看吧2023-06-06