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

Python使用uv整合Pip、Pyenv和Venv的實(shí)戰(zhàn)指南

 更新時(shí)間:2026年05月22日 08:38:59   作者:左詩右碼  
Python 的包管理一直是個(gè)讓開發(fā)者又愛又恨的話題,從 pip 到 virtualenv,再到 poetry、conda、pdm,工具層出不窮,但似乎總覺得差點(diǎn)意思,最近,Python 圈子殺出了一匹黑馬uv,本文給大家介紹了Python使用uv整合Pip、Pyenv和Venv的實(shí)戰(zhàn)指南,需要的朋友可以參考下

引言

Python 的包管理一直是個(gè)讓開發(fā)者“又愛又恨”的話題。從 pipvirtualenv,再到 poetryconda、pdm,工具層出不窮,但似乎總覺得“差點(diǎn)意思”——要么慢,要么依賴沖突讓人頭禿。

最近,Python 圈子殺出了一匹黑馬—— uv。它是 Ruff(那個(gè)快到離譜的代碼檢查工具)團(tuán)隊(duì)的新作,同樣用 Rust 編寫。這玩意的特點(diǎn)就是一個(gè)字:!而且它是奔著“大一統(tǒng)”去的,能管包、管環(huán)境、甚至管 Python 版本。

今天咱們就來盤一盤這個(gè)被稱為“Python 基礎(chǔ)設(shè)施未來”的工具。

01. 為什么要用 uv?

簡單說,uv 想把原本分散的活兒全干了:

  • 速度極快:比 pippip-tools 快 10-100 倍(不夸張,Rust 寫的)。
  • All-in-One:你不再需要 pyenv 裝 Python,不需要 venv 建環(huán)境,不需要 pip 裝包,一個(gè) uv 全搞定。

很多同學(xué)習(xí)慣用 pipenv,因?yàn)樗鉀Q了 pip 無法鎖定依賴版本的問題。但 pipenv 最大的痛點(diǎn)是解析依賴速度慢,甚至有時(shí)鎖定一個(gè)環(huán)境要喝杯咖啡的時(shí)間。uv 同樣支持鎖定文件(uv.lock),但它是瞬時(shí)完成的。如果你喜歡 pipenv 的自動(dòng)化感,uv 會(huì)給你同樣的體驗(yàn),但快得像閃電。

02. 安裝 uv:開啟極速之旅

安裝非常簡單,甚至不需要你先安裝 Python。

macOS

推薦使用 Homebrew 安裝

brew install uv

或者使用官方安裝腳本來安裝

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

Linux

官方推薦使用 curl 安裝:

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

Windows

可以使用 Winget 來安裝

winget install uv

也可以使用 powershell 進(jìn)行安裝:

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

如果你已經(jīng)有了 pip

當(dāng)然,你也可以像安裝普通 Python 包一樣安裝它(不推薦作為首選,但很方便):

pip install uv

注:安裝完成后,記得重啟一下終端,或者按照提示配置環(huán)境變量。

驗(yàn)證

安裝完成之后,驗(yàn)證安裝是否成功:

uv --version

03. 管理 Python 版本:忘掉 pyenv 吧

以前我們要安裝不同版本的 Python,通常會(huì)用 pyenv 或者去官網(wǎng)下載安裝包?,F(xiàn)在 uv 直接接管了。

查看可用的 Python 版本:

uv python list

安裝特定的 Python 版本:

# 安裝 Python 3.12
uv python install 3.12
# 安裝 Python 3.9
uv python install 3.9

uv 會(huì)自動(dòng)下載并管理這些版本,你甚至不需要手動(dòng)配置系統(tǒng)路徑,它會(huì)在項(xiàng)目運(yùn)行時(shí)自動(dòng)查找合適的版本。

04. 項(xiàng)目初始化與虛擬環(huán)境

以前我們習(xí)慣先 python -m venv .venv,現(xiàn)在 uv 把這套流程變得更符合現(xiàn)代工程習(xí)慣。

初始化一個(gè)新項(xiàng)目

# 創(chuàng)建一個(gè)名為 my-project 的新項(xiàng)目
uv init my-project
# 進(jìn)入目錄
cd my-project

uv init 會(huì)幫你生成 pyproject.toml(現(xiàn)代 Python 項(xiàng)目的標(biāo)準(zhǔn)配置文件)和一個(gè) .python-version 文件。

自動(dòng)創(chuàng)建虛擬環(huán)境

當(dāng)你在這個(gè)項(xiàng)目里添加依賴或者運(yùn)行代碼時(shí),uv 會(huì)自動(dòng)為你創(chuàng)建和管理虛擬環(huán)境。

如果你非要手動(dòng)創(chuàng)建一個(gè)傳統(tǒng)的虛擬環(huán)境,也可以:

# 在當(dāng)前目錄創(chuàng)建 .venv
uv venv
# 激活環(huán)境(macOS/Linux)
source .venv/bin/activate
# 激活環(huán)境(Windows)
.venv\Scripts\activate

然后在項(xiàng)目中指定 python 的版本

# 為當(dāng)前項(xiàng)目固定 Python 3.11
uv python pin 3.11

05. 包管理與依賴添加

這是大家最常用的功能。uv 的命令設(shè)計(jì)非常直觀

安裝包:

# 安裝最新版本
uv pip install requests
# 安裝特定版本
uv pip install requests==2.31.0
# 從 requirements.txt 安裝
uv pip install -r requirements.txt

安裝包到開發(fā)環(huán)境

uv pip install --dev pytest

執(zhí)行后,uv 會(huì)做三件事:

  1. 下載包(如果緩存里沒有)。
  2. 安裝到虛擬環(huán)境。
  3. 自動(dòng)更新 pyproject.tomluv.lock 文件(鎖定版本,確保團(tuán)隊(duì)協(xié)作一致性)。

升級(jí)包

uv pip upgrade requests

卸載包

uv pip uninstall requests

同步依賴 (Sync)

當(dāng)你拉取了同事的代碼,或者切換了分支,需要把環(huán)境同步到最新狀態(tài):

# 根據(jù) lock 文件同步環(huán)境
uv sync

06. 運(yùn)行代碼

以前我們需要先 source .venv/bin/activate 激活環(huán)境,然后再 python app.py。 使用 uv,你可以直接運(yùn)行:

# 在項(xiàng)目的虛擬環(huán)境中運(yùn)行 app.py
uv run app.py
# 運(yùn)行安裝在環(huán)境中的工具,比如 pytest
uv run pytest

uv run 會(huì)自動(dòng)檢測并使用當(dāng)前項(xiàng)目的虛擬環(huán)境,非常省心。

07. 舊項(xiàng)目遷移:如何從 pip/poetry/pipenv 遷移到 uv?

如果你手頭有一個(gè)老項(xiàng)目,想享受 uv 的速度,遷移其實(shí)很平滑。

場景一:只有 requirements.txt

這是最常見的場景。

# 1. 初始化 uv 項(xiàng)目
uv init
# 2. 直接安裝 requirements.txt 里的依賴
uv pip install -r requirements.txt

場景二:直接替代 pip 使用

如果你不想改變項(xiàng)目結(jié)構(gòu),只想單純加速 pip install 的過程,你可以把 uv 當(dāng)作 pip 的替身:

# 創(chuàng)建環(huán)境
uv venv
# 激活環(huán)境 (Windows: .venv\Scripts\activate)
source .venv/bin/activate 
# 用 uv 的 pip 接口安裝
uv pip install requests

場景三:從 Poetry 遷移

uv 原生支持解析 pyproject.toml。雖然它有自己的格式,但它能很好地兼容標(biāo)準(zhǔn)。你可以直接在 Poetry 項(xiàng)目目錄下嘗試 uv sync,或者索性刪除 poetry.lock,使用 uv add 重新構(gòu)建依賴樹。

場景四:從 Pipenv 遷移

如果你的項(xiàng)目里有 PipfilePipfile.lock,遷移到 uv 非常直接:

  1. 生成標(biāo)準(zhǔn)依賴:由于 uv 目前主要基于 pyproject.toml 標(biāo)準(zhǔn),你可以先用 pipenv 導(dǎo)出依賴:
pipenv requirements > requirements.txt
  1. 讓 uv 接管
# 初始化 uv
uv init
# 將導(dǎo)出的依賴添加到 uv 記錄中
cat requirements.txt | xargs uv add
  1. 清理舊物:遷移完成后,你可以放心地刪掉 PipfilePipfile.lock,擁抱 uv.lock。

總結(jié)

uv 不僅僅是一個(gè)包安裝器,它正在演變成 Python 開發(fā)的標(biāo)準(zhǔn)工作流工具

  • 對于新手:不用再糾結(jié)什么是 venv,什么是系統(tǒng) Python,uv init 之后直接寫代碼。
  • 對于老手:極速的安裝體驗(yàn)和符合直覺的 Workspaces 管理,能大幅提升開發(fā)效率。

天下武功,唯快不破。建議大家趕緊在自己的開發(fā)機(jī)上試一試,大概率你會(huì)回不去!

到此這篇關(guān)于Python使用uv整合Pip、Pyenv和Venv的實(shí)戰(zhàn)指南的文章就介紹到這了,更多相關(guān)Python uv整合Pip、Pyenv和Venv內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • Python的線程使用隊(duì)列Queue來改造轉(zhuǎn)賬場景

    Python的線程使用隊(duì)列Queue來改造轉(zhuǎn)賬場景

    前篇我們了隊(duì)列Queue和轉(zhuǎn)賬場景這次趁熱學(xué)委展示一下使用隊(duì)列解決轉(zhuǎn)賬場景的問題,這篇文章主要介紹了Python的線程使用隊(duì)列來改造轉(zhuǎn)賬場景,需要的朋友可以參考一下
    2022-02-02
  • pytorch 修改預(yù)訓(xùn)練model實(shí)例

    pytorch 修改預(yù)訓(xùn)練model實(shí)例

    今天小編就為大家分享一篇pytorch 修改預(yù)訓(xùn)練model實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • 詳解python中absl包的使用

    詳解python中absl包的使用

    "absl" 是 Google 開發(fā)的一個(gè) Python 軟件包,用于提供一些常見的 Python 編程功能和工具,以改善代碼的可讀性、可維護(hù)性和性能,下面我們就來看看absl包的具體使用吧
    2023-11-11
  • python實(shí)現(xiàn)在IDLE中輸入多行的方法

    python實(shí)現(xiàn)在IDLE中輸入多行的方法

    下面小編就為大家分享一篇python實(shí)現(xiàn)在IDLE中輸入多行的方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-04-04
  • python 一個(gè)figure上顯示多個(gè)圖像的實(shí)例

    python 一個(gè)figure上顯示多個(gè)圖像的實(shí)例

    今天小編就為大家分享一篇python 一個(gè)figure上顯示多個(gè)圖像的實(shí)例,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-07-07
  • Python中__slots__屬性介紹與基本使用方法

    Python中__slots__屬性介紹與基本使用方法

    在Python中,每個(gè)類都有實(shí)例屬性。默認(rèn)情況下Python用一個(gè)字典來保存一個(gè)對象的實(shí)例屬性。這非常有用,因?yàn)樗试S我們在運(yùn)行時(shí)去設(shè)置任意的新屬性。下面這篇文章主要給大家介紹了關(guān)于Python中__slots__屬性與基本使用方法的相關(guān)資料,需要的朋友可以參考下
    2018-09-09
  • python的?PyPDF2實(shí)現(xiàn)pdf文件切割和合并

    python的?PyPDF2實(shí)現(xiàn)pdf文件切割和合并

    大家好,本篇文章主要講的是python的?PyPDF2實(shí)現(xiàn)pdf文件切割和合并,感興趣的同學(xué)趕快來看一看吧,對你有幫助的話記得收藏一下
    2022-02-02
  • Python處理圖片并實(shí)現(xiàn)生成天際線

    Python處理圖片并實(shí)現(xiàn)生成天際線

    天際線(SkyLine)顧名思義就是天空與地面的邊界線,這篇文章主要為大家介紹了如何使用Python實(shí)現(xiàn)處理圖片并實(shí)現(xiàn)生成天際線,感興趣的可以了解下
    2024-01-01
  • Numpy將二維數(shù)組添加到空數(shù)組的實(shí)現(xiàn)

    Numpy將二維數(shù)組添加到空數(shù)組的實(shí)現(xiàn)

    今天小編就為大家分享一篇Numpy將二維數(shù)組添加到空數(shù)組的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12
  • python 應(yīng)用之Pycharm 新建模板默認(rèn)添加編碼格式-作者-時(shí)間等信息【推薦】

    python 應(yīng)用之Pycharm 新建模板默認(rèn)添加編碼格式-作者-時(shí)間等信息【推薦】

    這篇文章主要介紹了Pycharm 新建模板默認(rèn)添加編碼格式-作者-時(shí)間等信息 ,本文圖文并茂給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-06-06

最新評論

乡城县| 友谊县| 德安县| 神木县| 永善县| 甘德县| 福安市| 济南市| 唐河县| 武汉市| 汝州市| 西畴县| 五台县| 西和县| 隆尧县| 申扎县| 汽车| 武陟县| 锦屏县| 石河子市| 连平县| 屯门区| 玉屏| 兴仁县| 永康市| 宝应县| 海门市| 合水县| 宁强县| 南郑县| 九台市| 渭南市| 宁城县| 长武县| 石台县| 水富县| 图们市| 敖汉旗| 汪清县| 海晏县| 大名县|