最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

一文詳解Python包管理工具uv的核心命令使用

 更新時(shí)間:2026年02月05日 09:13:20   作者:蕭鼎  
這篇文章將帶大家從零開始,全面掌握 uv 的下載、安裝、核心命令使用,并深入剖析它為何被譽(yù)為Python 工具鏈的未來,感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

引言:為什么我們需要一個(gè)新的 Python 工具?

如果你曾經(jīng)歷過以下場(chǎng)景:

  • 創(chuàng)建虛擬環(huán)境等了 30 秒;
  • 安裝 requirements.txt 花了 5 分鐘;
  • 在 CI/CD 中因 pip 緩存失效而超時(shí)失??;
  • 想快速切換 Python 版本卻要手動(dòng)配置 PATH……

那么,你一定會(huì)對(duì) uv ——這個(gè)由 Astral(Ruff 的作者)團(tuán)隊(duì)打造的超高速 Python 工具鏈——感到驚喜。

uv 不是一個(gè)單一工具,而是一套用 Rust 編寫的、兼容現(xiàn)有生態(tài)的 Python 開發(fā)工具集合,包括:

  • 包安裝器(替代 pip
  • 虛擬環(huán)境管理器(替代 venv / virtualenv
  • Python 版本管理器(替代 pyenv
  • 項(xiàng)目構(gòu)建與發(fā)布工具(未來將替代 build / twine

它的核心目標(biāo)只有一個(gè):極致速度 + 完全兼容。

本文將帶你從零開始,全面掌握 uv 的下載、安裝、核心命令使用,并深入剖析它為何被譽(yù)為“Python 工具鏈的未來”。

一、什么是uv?它解決了什么問題?

1.1 背景:Python 工具鏈的“慢”痛點(diǎn)

傳統(tǒng) Python 工具鏈(pip + venv + setuptools)存在以下問題:

問題具體表現(xiàn)
速度慢pip 安裝大型依賴(如 torch)需數(shù)分鐘;創(chuàng)建虛擬環(huán)境需復(fù)制整個(gè)標(biāo)準(zhǔn)庫(kù)
不一致不同機(jī)器上 pip install 可能因緩存、網(wǎng)絡(luò)、平臺(tái)差異導(dǎo)致結(jié)果不同
功能割裂需組合多個(gè)工具(pip, venv, pyenv, poetry 等),學(xué)習(xí)成本高
無內(nèi)置版本管理切換 Python 版本需額外安裝 pyenv 或手動(dòng)配置

1.2uv的誕生:Rust 帶來的性能飛躍

uvRust 重寫了底層邏輯,利用其內(nèi)存安全、零成本抽象和并行能力,實(shí)現(xiàn)了數(shù)量級(jí)的速度提升。官方基準(zhǔn)測(cè)試顯示:

  • 創(chuàng)建虛擬環(huán)境:比 venv 快 10–100 倍
  • 安裝依賴:比 pip 快 10–100 倍
  • 解析依賴:比 pip-tools 快 50 倍以上

更重要的是,uv 完全兼容 pip 的命令行接口和 requirements.txt 格式,幾乎無需修改現(xiàn)有項(xiàng)目即可遷移。

二、下載與安裝uv

2.1 支持平臺(tái)

  • Windows(x64 / ARM64)
  • macOS(Intel / Apple Silicon)
  • Linux(glibc / musl)

2.2 安裝方式(推薦使用官方腳本)

方式一:一鍵安裝腳本(跨平臺(tái))

# Linux / macOS
curl -LsSf https://astral.sh/uv/install.sh | sh

# Windows (PowerShell)
irm https://astral.sh/uv/install.ps1 | iex

安裝后,將 ~/.cargo/bin(或 Windows 的 %USERPROFILE%\.cargo\bin)加入 PATH。

提示:即使你沒有 Rust 環(huán)境,該腳本也會(huì)自動(dòng)下載預(yù)編譯的二進(jìn)制文件。

方式二:包管理器安裝

# Homebrew (macOS/Linux)
brew install uv

# Scoop (Windows)
scoop install uv

# Arch Linux (AUR)
yay -S uv-bin

方式三:手動(dòng)下載

訪問 https://github.com/astral-sh/uv/releases 下載對(duì)應(yīng)平臺(tái)的 .tar.gz.zip 文件,解壓后將 uv 可執(zhí)行文件放入 PATH。

2.3 驗(yàn)證安裝

uv --version
# 輸出示例:uv 0.5.0 (abc123d)

三、核心功能與命令詳解

uv 目前提供四大子命令:

  • uv pip:高性能包安裝
  • uv venv:極速虛擬環(huán)境
  • uv python:Python 版本管理
  • uv tool:全局工具管理(類似 pipx

下面逐一介紹。

3.1uv venv:創(chuàng)建虛擬環(huán)境(替代python -m venv)

基本用法

# 創(chuàng)建名為 .venv 的虛擬環(huán)境(默認(rèn)行為)
uv venv

# 指定路徑
uv venv myenv

# 指定 Python 版本(需先安裝該版本,見 3.3 節(jié))
uv venv --python 3.11

性能對(duì)比

工具時(shí)間(macOS M1)
python -m venv .venv~800ms
uv venv~10ms

優(yōu)勢(shì):不復(fù)制標(biāo)準(zhǔn)庫(kù),而是通過符號(hào)鏈接(symlink)實(shí)現(xiàn),啟動(dòng)速度極快。

激活環(huán)境

與傳統(tǒng)方式一致:

# Linux/macOS
source .venv/bin/activate

# Windows (PowerShell)
.\.venv\Scripts\Activate.ps1

3.2uv pip:安裝 Python 包(替代pip install)

uv pip 完全兼容 pip 的 CLI 參數(shù)和 requirements.txt。

基本安裝

# 安裝單個(gè)包
uv pip install requests

# 從 requirements.txt 安裝
uv pip install -r requirements.txt

# 安裝開發(fā)依賴
uv pip install -e .

高級(jí)用法

# 指定索引源(兼容 pip 選項(xiàng))
uv pip install --index-url https://pypi.tuna.tsinghua.edu.cn/simple torch

# 僅下載不安裝(用于離線部署)
uv pip download -r requirements.txt --dest ./wheels

# 凍結(jié)依賴(輸出當(dāng)前環(huán)境的精確版本)
uv pip freeze > requirements.lock

速度實(shí)測(cè)

在一個(gè)包含 django, numpy, pandas, requestsrequirements.txt 中:

  • pip install -r requirements.txt42 秒
  • uv pip install -r requirements.txt1.8 秒

優(yōu)勢(shì):并行下載、智能緩存、避免重復(fù)解析依賴樹。

3.3uv python:管理 Python 版本(替代pyenv)

這是 uv 最令人興奮的功能之一——內(nèi)置 Python 版本管理

安裝 Python 版本

# 列出可用版本
uv python list --all

# 安裝指定版本(自動(dòng)從 python.org 下載)
uv python install 3.11
uv python install 3.12.1

# 安裝最新 patch 版本
uv python install 3.11 --latest

查看已安裝版本

uv python list
# 輸出示例:
# 3.11.9    /Users/you/.local/share/uv/python/3.11.9/bin/python3
# 3.12.1    /Users/you/.local/share/uv/python/3.12.1/bin/python3

設(shè)置全局/本地 Python 版本

# 全局默認(rèn)
uv python pin 3.11

# 項(xiàng)目級(jí)(在當(dāng)前目錄生成 .python-version)
uv python pin 3.12.1 --project

優(yōu)勢(shì):無需配置 shell 插件,開箱即用;自動(dòng)處理 PATH;支持多平臺(tái)預(yù)編譯包。

3.4uv tool:全局工具管理(替代pipx)

用于安裝命令行工具(如 black, ruff, poetry)到隔離環(huán)境中。

# 安裝全局工具
uv tool install black
uv tool install ruff

# 運(yùn)行工具(自動(dòng)激活環(huán)境)
black --version
ruff check .

# 列出已安裝工具
uv tool list

# 卸載
uv tool uninstall black

優(yōu)勢(shì):比 pipx 更快,且與 uv 緩存共享,節(jié)省磁盤空間。

四、uv的核心優(yōu)勢(shì)總結(jié)

4.1 速度:數(shù)量級(jí)的提升

  • Rust 實(shí)現(xiàn):無 GIL 限制,充分利用多核。
  • 并行下載與安裝:同時(shí)處理多個(gè)包。
  • 智能緩存:全局 wheel 緩存,避免重復(fù)編譯。
  • 符號(hào)鏈接虛擬環(huán)境:創(chuàng)建時(shí)間從秒級(jí)降至毫秒級(jí)。

4.2 兼容性:無縫遷移

  • 完全支持 pip 的命令行參數(shù)。
  • 讀取 requirements.txt, pyproject.toml, setup.py
  • 生成的標(biāo)準(zhǔn)虛擬環(huán)境可被任何 IDE 識(shí)別。

4.3 一體化:減少工具碎片

過去你需要:

pyenv → 管理 Python 版本
venv → 創(chuàng)建虛擬環(huán)境
pip → 安裝包
pipx → 安裝全局工具

現(xiàn)在只需一個(gè) uv

uv python install 3.11      # 版本管理
uv venv --python 3.11       # 虛擬環(huán)境
uv pip install -r reqs.txt  # 包安裝
uv tool install ruff        # 全局工具

4.4 可靠性:確定性構(gòu)建

  • 默認(rèn)啟用 --locked 模式(未來將強(qiáng)制),確保依賴解析結(jié)果一致。
  • 支持 --dry-run 預(yù)覽安裝計(jì)劃。
  • 自動(dòng)處理平臺(tái)標(biāo)簽(如 manylinux, musllinux)。

五、實(shí)戰(zhàn):用uv初始化一個(gè)新項(xiàng)目

假設(shè)你要開始一個(gè) Flask 項(xiàng)目:

# 1. 安裝所需 Python 版本
uv python install 3.11

# 2. 創(chuàng)建項(xiàng)目目錄并進(jìn)入
mkdir my-flask-app && cd my-flask-app

# 3. 設(shè)置項(xiàng)目級(jí) Python 版本
uv python pin 3.11 --project

# 4. 創(chuàng)建虛擬環(huán)境
uv venv

# 5. 激活環(huán)境(Linux/macOS)
source .venv/bin/activate

# 6. 安裝依賴
echo "flask" > requirements.txt
uv pip install -r requirements.txt

# 7. 安裝開發(fā)工具
uv tool install black ruff

# 8. 編寫代碼并格式化
echo 'print("Hello uv!")' > app.py
black app.py

整個(gè)過程流暢、快速、無冗余步驟。

六、常見問題與注意事項(xiàng)

Q1:uv會(huì)取代 pip 嗎?

短期內(nèi)不會(huì)。uv 定位是 pip 的高性能替代品,而非破壞性革新。它尊重現(xiàn)有生態(tài),目標(biāo)是成為“更好的 pip”。

Q2: 是否支持私有 PyPI 源?

支持!所有 pip 的索引相關(guān)參數(shù)(--index-url, --extra-index-url, --trusted-host)均有效。

Q3: 能在 CI/CD 中使用嗎?

強(qiáng)烈推薦! 例如在 GitHub Actions 中:

- name: Install uv
  run: curl -LsSf https://astral.sh/uv/install.sh | sh

- name: Setup Python
  run: uv python install 3.11

- name: Create venv
  run: uv venv

- name: Install deps
  run: uv pip install -r requirements.txt

可顯著縮短 CI 時(shí)間。

Q4: Windows 支持如何?

完全支持!包括 PowerShell、CMD、WSL。虛擬環(huán)境路徑、激活腳本均正確生成。

七、未來展望

uv 仍在快速發(fā)展中(截至 2026 年初,版本約 0.5.x),未來計(jì)劃包括:

  • uv build:替代 python -m build
  • uv publish:替代 twine upload
  • 完整的 PEP 517/518 支持
  • 與 Poetry、Hatch 等構(gòu)建工具集成

Astral 團(tuán)隊(duì)的目標(biāo)是:用一套工具統(tǒng)一 Python 的開發(fā)、構(gòu)建、發(fā)布全流程。

結(jié)語(yǔ):擁抱更快的 Python 開發(fā)體驗(yàn)

uv 不僅僅是一個(gè)“更快的 pip”,它是對(duì) Python 工具鏈的一次系統(tǒng)性重構(gòu)。在 AI 和數(shù)據(jù)科學(xué)項(xiàng)目日益復(fù)雜的今天,開發(fā)效率的每一秒節(jié)省,都是對(duì)創(chuàng)造力的釋放。

正如其名——uv(ultraviolet,紫外線),它看不見,卻無處不在;它不改變生態(tài),卻讓一切運(yùn)行得更快、更穩(wěn)、更簡(jiǎn)單。

現(xiàn)在就去試試吧:

curl -LsSf https://astral.sh/uv/install.sh | sh
uv venv && uv pip install numpy pandas

你可能會(huì)驚訝于:原來 Python 開發(fā),可以這么快。

到此這篇關(guān)于一文詳解Python包管理工具uv的核心命令使用的文章就介紹到這了,更多相關(guān)Python uv命令內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python神經(jīng)網(wǎng)絡(luò)tf.name_scope和tf.variable_scope函數(shù)區(qū)別

    python神經(jīng)網(wǎng)絡(luò)tf.name_scope和tf.variable_scope函數(shù)區(qū)別

    這篇文章主要為大家介紹了python神經(jīng)網(wǎng)絡(luò)tf.name_scope和tf.variable_scope函數(shù)的使用區(qū)別,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-05-05
  • pandas || df.dropna() 缺失值刪除操作

    pandas || df.dropna() 缺失值刪除操作

    這篇文章主要介紹了pandas || df.dropna() 缺失值刪除操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2021-03-03
  • Keras預(yù)訓(xùn)練的ImageNet模型實(shí)現(xiàn)分類操作

    Keras預(yù)訓(xùn)練的ImageNet模型實(shí)現(xiàn)分類操作

    這篇文章主要介紹了Keras預(yù)訓(xùn)練的ImageNet模型實(shí)現(xiàn)分類操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • Python?合并/拆分Excel的實(shí)現(xiàn)示例

    Python?合并/拆分Excel的實(shí)現(xiàn)示例

    有時(shí)對(duì)于多個(gè)工作表需要進(jìn)行合并或拆分,以便進(jìn)行瀏覽總結(jié),本文主要介紹了Python?合并/拆分Excel的實(shí)現(xiàn)示例,具有一定的參考價(jià)值,感興趣的可以了解一下
    2023-09-09
  • Python NumPy 數(shù)組索引的示例詳解

    Python NumPy 數(shù)組索引的示例詳解

    數(shù)組索引是指使用方括號(hào)([])來索引數(shù)組值,numpy提供了比常規(guī)的python序列更多的索引工具,除了按整數(shù)和切片索引之外,數(shù)組可以由整數(shù)數(shù)組索引、布爾索引及花式索引,這篇文章主要介紹了Python NumPy 數(shù)組索引,需要的朋友可以參考下
    2023-01-01
  • Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程

    Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程

    這篇文章主要介紹了Pandas常用累計(jì)、同比、環(huán)比等統(tǒng)計(jì)方法實(shí)踐過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-05-05
  • python實(shí)現(xiàn)字符串字母大小寫轉(zhuǎn)換的幾種方法

    python實(shí)現(xiàn)字符串字母大小寫轉(zhuǎn)換的幾種方法

    本文主要介紹了python實(shí)現(xiàn)字符串字母大小寫轉(zhuǎn)換的幾種方法,包括islower()、isupper()、istitle()、lower()、casefold()、upper()、capitalize()、title()和swapcase(),具有一定的參考價(jià)值,感興趣的可以了解一下
    2025-03-03
  • Python讀取txt某幾列繪圖的方法

    Python讀取txt某幾列繪圖的方法

    今天小編就為大家分享一篇Python讀取txt某幾列繪圖的方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-10-10
  • Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)盾牌篇

    Pygame游戲開發(fā)之太空射擊實(shí)戰(zhàn)盾牌篇

    相信大多數(shù)8090后都玩過太空射擊游戲,在過去游戲不多的年代太空射擊自然屬于經(jīng)典好玩的一款了,今天我們來自己動(dòng)手實(shí)現(xiàn)它,在編寫學(xué)習(xí)中回顧過往展望未來,在本課中,我們將為玩家添加一個(gè)盾牌以及一個(gè)用于顯示盾牌等級(jí)的欄
    2022-08-08
  • python學(xué)生管理系統(tǒng)學(xué)習(xí)筆記

    python學(xué)生管理系統(tǒng)學(xué)習(xí)筆記

    這篇文章主要為大家詳細(xì)介紹了python學(xué)生管理系統(tǒng)的學(xué)習(xí)筆記,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-03-03

最新評(píng)論

龙陵县| 新巴尔虎右旗| 华池县| 广饶县| 台北市| 德化县| 忻城县| 邢台市| 景德镇市| 延长县| 十堰市| 本溪市| 锡林浩特市| 思南县| 赫章县| 宜章县| 牡丹江市| 台江县| 花莲市| 土默特右旗| 通江县| 抚州市| 平湖市| 寿宁县| 陆丰市| 沅江市| 常山县| 靖远县| 中西区| 丹棱县| 包头市| 巴塘县| 托克托县| 西和县| 龙岩市| 玉树县| 尤溪县| 台中县| 政和县| 共和县| 印江|