【python】【UV】一篇文章學完新一代 Python 環境與包管理器使用指南

🐍 UV:新一代 Python 環境與包管理器使用指南


一、UV 是什么?

UV 是由 Astral 團隊開發的高性能 Python 環境管理器,旨在統一替代 pyenvpipvenvpip-toolspipenv 等工具。

1.1 UV 的主要功能

  • 🚀 極速包安裝(基于 Rust)
  • 🧠 自動管理虛擬環境
  • 🌀 Python 多版本支持與切換
  • 📦 統一依賴管理(支持鎖文件)
  • 🌍 全局 pip 安裝緩存共享
  • 💼 開發 / 生產環境依賴分離

二、UV 使用入門

2.1 下載與安裝(https://docs.astral.sh/uv/getting-started/installation/#__tabbed_1_2)

💻 macOS / Linux
curl -LsSf https://astral.sh/uv/install.sh | sh
🪟 Windows(PowerShell)
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
📦 Pip 安裝(不推薦,功能不全)
pip install uv

安裝完成后可用 uv --version 檢查是否安裝成功。


2.2 Python 版本管理

UV 支持下載并管理多個 Python 版本,類似于 pyenv

查看已安裝的版本列表
uv python list
下載 Python 指定版本
uv python install 3.10
切換當前使用版本(pin)
uv python pin 3.10 #Pinned `.python-version` to `3.10`

? 切換后可立即使用對應版本的 Python 和環境進行項目初始化等操作。


2.3 初始化項目

建議先使用 uv python use 選擇好目標版本,然后再進行項目初始化。

創建新項目(使用當前選中的 Python 版本)
uv init my-project
cd my-project
或直接指定 Python 版本
uv init -p 3.11 awesome-project

初始化會自動生成:

  • .venv/ 目錄(項目虛擬環境)
  • pyproject.toml(項目依賴聲明)
  • uv.lock(鎖文件,鎖定精確依賴)

三、UV Init 創建項目的注意事項

3.1 推薦使用 uv add 管理依賴

uv add requests
uv add flask sqlalchemy

UV 不建議使用 pip install 安裝依賴,因為 UV 項目已默認隔離虛擬環境且依賴受鎖文件保護。

3.2 UV 項目的“無 pip 安裝”

UV 采用 全局 pip 緩存機制

  • 多個項目使用相同 Python 版本時,共享 pip 緩存,提高安裝效率
  • 項目內并沒有傳統意義上的 pip install 機制
  • 因為 Python 版本一致 => pip 版本一致,避免 pip 被污染或沖突
  • uv.lock 文件用于保證項目依賴一致性,可類比 npm 的 package-lock.json

四、使用 UV 創建虛擬環境

初始化項目后,UV 自動為項目創建 .venv 虛擬環境,無需再手動 python -m venv

如需手動創建虛擬環境:

#運行:
uv venv 
#輸出:
#Using CPython 3.13.3
#Creating virtual environment at: .venv
#Activate with: .venv\Scripts\activate

激活方式與常規 .venv 一致:

# Windows cmd運行venv環境
.venv\Scripts\activate
#退出venv環境
deactivate

五、開發與生產環境管理

UV 區分了開發依賴與生產依賴:

5.1 添加開發依賴

uv add --dev black pytest isort

pyproject.toml 中會區分:

  • [dependency-groups]
    dev = ["black>=25.1.0","isort>=6.0.1","pytest>=8.3.5",
    ]

uv.lock

[package.metadata.requires-dev]
dev = [{ name = "black", specifier = ">=25.1.0" },{ name = "isort", specifier = ">=6.0.1" },{ name = "pytest", specifier = ">=8.3.5" },
]

5.2 鎖定依賴、部署同步

生成鎖文件(默認自動生成):

uv lock

部署時安裝所有依賴:

uv pip sync

或僅安裝生產依賴:

uv pip sync --production

? 總結

功能UV 表現
Python 多版本管理? 支持 install/use/list
虛擬環境? 自動創建 .venv/
依賴管理? 使用 pyproject.toml + uv.lock
安裝效率🚀 Rust 實現,遠快于 pip
跨平臺? 支持 macOS / Linux / Windows
開發/生產區分? 支持 --dev--production

UV = Python 開發的 Cargo,推薦前端 / 全棧 / 數據等開發者優先試用!


🧪 推薦實踐

uv python install 3.11
uv python pin 3.11
uv init -p 3.11 my-fastapi-app
cd my-fastapi-app
uv add fastapi uvicorn
uv add --dev black pytest
uv pip sync

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/903968.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/903968.shtml
英文地址,請注明出處:http://en.pswp.cn/news/903968.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

前端性能優化2:結合HTTPS與最佳實踐,全面優化你的網站性能

點亮極速體驗:結合HTTPS與最佳實踐,為你詳解網站性能優化的道與術 在如今這個信息爆炸、用戶耐心極其有限的數字時代,網站的性能早已不是一個可選項,而是關乎生存和發展的核心競爭力。一個遲緩的網站,無異于在數字世界…

JavaWeb:vueaxios

一、簡介 什么是vue? 快速入門 <!-- 3.準備視圖元素 --><div id"app"><!-- 6.數據渲染 --><h1>{{ msg }}</h1></div><script type"module">// 1.引入vueimport { createApp, ref } from https://unpkg.com/vu…

Tauri聯合Vue開發中Vuex與Pinia關系及前景分析

在 TauriVue 的開發場景中&#xff0c;Vuex 和 Pinia 是兩種不同的狀態管理工具&#xff0c;它們的關系和前景可以從以下角度分析&#xff1a; 一、Vuex 與 Pinia 的關系 繼承與發展 Pinia 最初是作為 Vuex 5 的提案設計的&#xff0c;其目標是簡化 Vuex 的復雜性并更好地適配 …

Linux中的時間同步

一、時間同步服務擴展總結 1. 時間同步的重要性 多主機協作需求&#xff1a;在分布式系統、集群、微服務架構中&#xff0c;時間一致性是日志排序、事務順序、數據一致性的基礎。 安全協議依賴&#xff1a;TLS/SSL證書、Kerberos認證等依賴時間有效性&#xff0c;時間偏差可能…

【算法基礎】三指針排序算法 - JAVA

一、基礎概念 1.1 什么是三指針排序 三指針排序是一種特殊的分區排序算法&#xff0c;通過使用三個指針同時操作數組&#xff0c;將元素按照特定規則進行分類和排序。這種算法在處理包含有限種類值的數組時表現出色&#xff0c;最經典的應用是荷蘭國旗問題&#xff08;Dutch …

《操作系統真象還原》第十二章(2)——進一步完善內核

文章目錄 前言可變參數的原理實現系統調用write更新syscall.h更新syscall.c更新syscall-init.c 實現printf編寫stdio.h編寫stdio.c 第一次測試main.cmakefile結果截圖 完善printf修改main.c 結語 前言 上部分鏈接&#xff1a;《操作系統真象還原》第十二章&#xff08;1&#…

ICML2021 | DeiT | 訓練數據高效的圖像 Transformer 與基于注意力的蒸餾

Training data-efficient image transformers & distillation through attention 摘要-Abstract引言-Introduction相關工作-Related Work視覺Transformer&#xff1a;概述-Vision transformer: overview通過注意力機制蒸餾-Distillation through attention實驗-Experiments…

深度學習:AI 機器人時代

在科技飛速發展的當下&#xff0c;AI 機器人時代正以洶涌之勢席卷而來&#xff0c;而深度學習作為其核心驅動力&#xff0c;正重塑著我們生活與工作的方方面面。 從智能工廠的自動化生產&#xff0c;到家庭中貼心服務的智能助手&#xff0c;再到復雜環境下執行特殊任務的專業機…

《告別試錯式開發:TDD的精準質量鍛造術》

深度解鎖TDD&#xff1a;應用開發的創新密鑰 在應用開發的復雜版圖中&#xff0c;如何雕琢出高質量、高可靠性的應用&#xff0c;始終是開發者們不懈探索的核心命題。測試驅動開發&#xff08;TDD&#xff09;&#xff0c;作為一種顛覆性的開發理念與方法&#xff0c;正逐漸成…

應用層自定義協議序列與反序列化

目錄 一、網絡版計算器 二、網絡版本計算器實現 2.1源代碼 2.2測試結果 一、網絡版計算器 應用層定義的協議&#xff1a; 應用層進行網絡通信能否使用如下的協議進行通信呢&#xff1f; 在操作系統內核中是以這種協議進行通信的&#xff0c;但是在應用層禁止以這種協議進行…

Excel-CLI:終端中的輕量級Excel查看器

在數據驅動的今天&#xff0c;Excel 文件處理成為了我們日常工作中不可或缺的一部分。然而&#xff0c;頻繁地在圖形界面與命令行界面之間切換&#xff0c;不僅效率低下&#xff0c;而且容易出錯。現在&#xff0c;有了 Excel-CLI&#xff0c;一款運行在終端中的輕量級Excel查看…

百度后端開發一面

mutex, rwmutex 在Go語言中&#xff0c;Mutex&#xff08;互斥鎖&#xff09;和RWMutex&#xff08;讀寫鎖&#xff09;是用于管理并發訪問共享資源的核心工具。以下是它們的常見問題、使用場景及最佳實踐總結&#xff1a; 1. Mutex 與 RWMutex 的區別 Mutex: 互斥鎖&#xf…

STM32 IIC總線

目錄 IIC協議簡介 IIC總線系統結構 IIC總線物理層特點 IIC總線協議層 空閑狀態 應答信號 數據的有效性 數據傳輸 STM32的IIC特性及架構 STM32的IIC結構體 0.96寸OLED顯示屏 SSD1306框圖及引腳定義 4針腳I2C接口模塊原理圖 字節傳輸-I2C 執行邏輯框圖 命令表…

【unity游戲開發入門到精通——UGUI】整體控制一個UGUI面板的淡入淡出——CanvasGroup畫布組組件的使用

注意&#xff1a;考慮到UGUI的內容比較多&#xff0c;我將UGUI的內容分開&#xff0c;并全部整合放在【unity游戲開發——UGUI】專欄里&#xff0c;感興趣的小伙伴可以前往逐一查看學習。 文章目錄 前言CanvasGroup畫布組組件參數 實戰專欄推薦完結 前言 如果我們想要整體控制…

大型語言模型個性化助手實現

大型語言模型個性化助手實現 目錄 大型語言模型個性化助手實現PERSONAMEM,以及用戶資料和對話模擬管道7種原位用戶查詢類型關于大語言模型個性化能力評估的研究大型語言模型(LLMs)已經成為用戶在各種任務中的個性化助手,從提供寫作支持到提供量身定制的建議或咨詢。隨著時間…

生成式 AI 的未來

在人類文明的長河中,技術革命始終是推動社會躍遷的核心引擎。從蒸汽機解放雙手,到電力點亮黑夜,再到互聯網編織全球神經網絡,每一次技術浪潮都在重塑人類的生產方式與認知邊界。而今天,生成式人工智能(Generative AI)正以一種前所未有的姿態登上歷史舞臺——它不再局限于…

【序列化與反序列化詳解】

文章目錄 一、序列化與反序列化是什么&#xff1f;1. 為什么需要序列化&#xff1f;2. 反序列化的作用 二、常見的序列化格式三、不同編程語言的序列化與反序列化示例1. Python 的序列化與反序列化JSON 序列化Pickle 序列化&#xff08;僅限 Python&#xff09; 2. Java 的序列…

【單例模式】簡介

目錄 概念理解使用場景優缺點實現方式 概念理解 單例模式要保證一個類在整個系統運行期間&#xff0c;無論創建多少次該類的對象&#xff0c;始終只會有一個實例存在。就像操作系統中的任務管理器&#xff0c;無論何時何地調用它&#xff0c;都是同一個任務管理器在工作&#…

目標檢測YOLO實戰應用案例100講- 無人機平臺下露天目標檢測與計數

目錄 知識儲備 基于YOLOv8改進的無人機露天目標檢測與計數 一、環境配置與依賴安裝 二、核心代碼實現(帶詳細注釋) 1. 改進YOLOv8模型定義(添加注意力機制) 2. 無人機視角數據增強(drone_augment.py ) 3. 多目標跟蹤與計數(tracking_counter.py ) 4. 完整推理流…

【在Spring Boot中集成Redis】

在Spring Boot中集成Redis 依賴在application.yml中配置Redis服務地址創建Redis配置類緩存工具類使用 依賴 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-data-redis</artifactId></dependency&…