使用 uv管理 Python 虛擬環境:比conda更快、更輕量的現代方案

文章目錄

    • 什么是 `uv`?
    • 安裝 `uv`
      • 在線安裝(推薦)
        • Windows 系統
        • Linux / macOS 系統
      • 離線安裝
        • 步驟 1:獲取二進制包
        • 步驟 2:解壓并移動到可執行路徑
        • 步驟 3:設置環境變量
        • 驗證安裝
    • 創建并激活虛擬環境
      • 創建虛擬環境
        • 輸出示例(Windows):
        • 輸出示例(Linux/macOS):
      • 激活虛擬環境
        • Windows:
        • Linux/macOS:
    • `uv` vs `conda`:誰更勝一籌?
    • 適用場景建議
      • 選擇 `uv` 的場景:
      • 選擇 `conda` 的場景:
    • 總結
    • 參考資源

在 Python 開發中,虛擬環境(Virtual Environment)是管理依賴和項目隔離的核心工具。傳統的 venvpip 在工程效率上存在諸多痛點,而 conda 雖然功能強大,但其跨語言特性和龐大的體積并非所有場景都需要。今天,我們介紹一個全新的 Python 工具——uv,它結合了 Rust 語言的性能優勢和現代包管理理念,讓 Python 開發更高效、更簡潔。


什么是 uv

uv 是由 Astral 開發的 Python 包管理器和虛擬環境管理工具,用 Rust 編寫,專注于 速度輕量化。相比 condauv 的核心優勢在于:

  • 極致速度:依賴解析和包安裝速度比 pip 快 10-100 倍。
  • 純 Python 生態支持:無縫對接 PyPI 和 pyproject.toml
  • 輕量級隔離:虛擬環境體積小,啟動秒級完成。
  • 現代化命令設計:命令簡潔直觀,如 uv venvuv add 等。

安裝 uv

在線安裝(推薦)

Windows 系統
# 使用 PowerShell 安裝 uv
powershell -ExecutionPolicy Bypass -c "irm https://astral.sh/uv/install.ps1 | iex"

注意:安裝后需手動添加環境變量(路徑因人而異,按提示操作):

$env:Path = "C:\Users\<用戶名>\.local\bin;$env:Path"
Linux / macOS 系統
# 使用 curl 安裝(推薦)
curl -LsSf https://astral.sh/uv/install.sh | sh# 或使用 wget 安裝
wget -qO- https://astral.sh/uv/install.sh | sh

驗證安裝

uv --version

離線安裝

步驟 1:獲取二進制包

從 GitHub Releases 下載對應平臺的離線包,例如:

uv-x86_64-unknown-linux-gnu.tar.gz
步驟 2:解壓并移動到可執行路徑
# 解壓
tar -zxvf uv-x86_64-unknown-linux-gnu.tar.gz# 移動到 ~/.local/bin
sudo mv uv uvx ~/.local/bin/
步驟 3:設置環境變量
# 臨時生效
export PATH="$HOME/.local/bin:$PATH"# 永久生效(添加到 ~/.bashrc 或 ~/.zshrc)
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
source ~/.bashrc
驗證安裝
uv --version


創建并激活虛擬環境

創建虛擬環境

# 創建名為 rag 的虛擬環境,使用 Python 3.12.7
uv venv rag --python 3.12.7
輸出示例(Windows):
uv venv rag --python 3.12.7
Using CPython 3.12.7
Creating virtual environment at: rag
Activate with: rag\Scripts\activate
輸出示例(Linux/macOS):
$ uv venv rag -p 3.12.7
Using CPython 3.12.7
Creating virtual environment at: rag
Activate with: source rag/bin/activate

激活虛擬環境

Windows:
rag\Scripts\activate
Linux/macOS:
source rag/bin/activate

uv vs conda:誰更勝一籌?

對比維度uv (astral-sh/uv)conda (Anaconda/miniconda)
核心定位Python 專屬包管理器 + 環境管理器(Rust 開發)跨語言包管理器 + 環境管理器(支持多編程語言)
速度優勢顯著:Rust 編譯帶來極致速度,環境創建/刪除秒級完成速度較慢:依賴解析和安裝耗時久,尤其復雜環境
語言支持僅支持 Python,專注 PyPI 生態跨語言支持:Python、R、C++、Fortran 等
依賴處理輕量:依賴 PyPI,優先處理純 Python 包;復雜二進制依賴需額外配置二進制依賴處理強:自帶 conda-forge,可直接安裝預編譯科學計算依賴(如 CUDA/MKL 版本的 PyTorch)
環境隔離輕量級隔離:共享系統底層庫,環境體積小深度隔離:隔離非 Python 依賴(如 C 庫),兼容性高
生態與兼容性高兼容:無縫對接 pip 和 PyPI,支持 pyproject.toml生態成熟:conda-forge 倉庫包數量多,適合數據科學場景
使用門檻簡單:命令簡潔(如 uv venvuv add),適合 Python 開發者快速上手稍高:需理解頻道、二進制依賴等概念

適用場景建議

選擇 uv 的場景:

  • 純 Python 開發:無需跨語言依賴。
  • 追求極致速度:頻繁創建環境、安裝包。
  • 現代 Python 項目:需與 pip/poetry 協作。

選擇 conda 的場景:

  • 跨語言開發:如 Python+R 或需要 CUDA/MKL 支持。
  • 科學計算/機器學習:需預編譯二進制依賴。
  • 深度環境隔離:如多版本 CUDA 共存。

總結

uv 是 Python 開發者的新寵,它以 Rust 的性能優勢現代化設計,解決了傳統工具的痛點。如果你專注于 Python 生態,追求速度和輕量化,uv 是理想選擇;而 conda 仍然是科學計算領域的全能選手。根據項目需求選擇合適的工具,才能事半功倍!


參考資源

  • uv GitHub 項目
  • uv 官方文檔
  • Conda 官方文檔

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

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

相關文章

課堂記憶項目開發日志

課堂記憶項目開發日志 日期: 2025年8月18日 1. 基礎實現 項目目標: 創建一個動態、美觀的“課堂記憶”頁面,展示教師信息、教學成果、學生反饋、未來計劃、教學成就和教學金句。 實現交互功能,包括按鈕點擊展開內容、圖片點擊彈出詳細信息、圖表展示數據。 技術棧: HTML5 C…

藍橋杯算法之搜索章 - 7

大家好&#xff0c;不同的時間&#xff0c;相同的地點&#xff01;又和大家見面了&#xff0c;接下來我將帶來多源BFS的內容 通過多源BFS的學習&#xff0c;大家將對BFS理解更加深入&#xff01; lets go! 前言 通過前面內容的學習&#xff0c;大家肯定已經對于BFS有了一定理解…

onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT fromUser false

這個錯誤日志 onRequestHide at ORIGIN_CLIENT reason HIDE_SOFT_INPUT fromUser false 通常出現在 Android 平臺的 WebView 或混合應用&#xff08;如 Cordova/Capacitor&#xff09;中&#xff0c;與軟鍵盤&#xff08;Soft Input&#xff09;的隱藏行為有關。以下是可能的原…

用PaddleDetection套件訓練自己的數據集,PP-YOLO-SOD訓練全流程

文章目錄官方資料ppyoloe 訓練全流程環境配置與套件準備數據集準備與VOC格式ppdet的要求標簽列表txt文件生成腳本數據集配置預訓練權重模型配置ppyoloe訓練命令ppyoloe評估命令ppyoloe推理命令與可視化結果ppyoloe-SOD 訓練全流程預訓練權重模型配置ppyoloe訓練命令官方資料 P…

Candle用 Rust 打造“小而快”的機器學習棧

1. 為什么是 Candle&#xff1f;&#xff08;三條硬理由&#xff09;Serverless & 輕量部署 傳統 Python 生態在函數冷啟動/GIL/體積上常見掣肘。Candle 是純 Rust 二進制&#xff0c;可將推理程序打包成一個小體積可執行文件&#xff0c;非常適合邊緣側 & Serverless。…

小波卷積YYDS!小波變換+CNN創新結合

2025深度學習發論文&模型漲點之——小波卷積小波卷積通過先將輸入信號或圖像進行小波分解&#xff0c;得到不同尺度的子帶信號&#xff0c;然后在每個子帶信號上應用卷積操作來提取局部特征&#xff0c;最后通過逆小波變換將經過卷積處理的子帶信號重構為最終的輸出信號或圖…

高性價比的5G專網設備,助力企業降本增效

在數字化轉型的浪潮中&#xff0c;企業亟需兼顧先進技術與投入成本的平衡。作為全球領先的核心網供應商&#xff0c;IPLOOK始終堅持以客戶為中心&#xff0c;推出高性價比的5G行業專網設備&#xff0c;幫助企業在保障性能的同時&#xff0c;有效降低網絡建設與運維成本。 高性…

可編輯150頁PPT | 某制造集團產業數字化轉型規劃方案

推薦摘要&#xff1a;某制造集團產業數字化轉型規劃方案&#xff0c;直擊傳統制造向智能智造躍遷的核心命題。該集團作為裝備制造領域龍頭&#xff0c;業務橫跨工程機械、農業機械、能源裝備三大板塊&#xff0c;擁有12個生產基地、400余家供應鏈企業&#xff0c;但面臨設備聯網…

Kafka 面試題及詳細答案100道(11-22)-- 核心機制1

《前后端面試題》專欄集合了前后端各個知識模塊的面試題,包括html,javascript,css,vue,react,java,Openlayers,leaflet,cesium,mapboxGL,threejs,nodejs,mangoDB,SQL,Linux… 。 前后端面試題-專欄總目錄 文章目錄 一、本文面試題目錄 11. 什么是Kafka的分區(P…

PHP反序列化的CTF題目環境和做題復現第1集

1 通過post參數提交反序列信息 2 題目 http://192.168.1.8/fxl1/fxl1.php <?php highlight_file(__FILE__);class ezUnserialize{public $key;public function __destruct(){if($this->key "FLAG"){include(flag.php);echo $flag;}} } unserialize($_POST[a…

[論文閱讀] 軟件工程工具 | EVOSCAT可視化工具如何重塑軟件演化研究

EVOSCAT可視化工具如何重塑軟件演化研究 論文信息 原標題&#xff1a;EVOSCAT: Exploring Software Change Dynamics in Large-Scale Historical Datasets主要作者及機構&#xff1a; Souhaila Serbout&#xff08;University of Zurich, Zurich, Switzerland&#xff09;Diana…

【入門級-算法-6、排序算法:排序的基本概念冒泡排序】

一、排序概念&#xff1a;是將一組數據按照特定規則重新排列的過程&#xff0c;是計算機科學中最基礎且重要的算法之一。 二、排序的基本要素 排序鍵(Key)&#xff1a;是排序過程中用于比較和確定元素順序的特定數據項或數據屬性。 穩定性&#xff1a;排序過程中&#xff0c;相…

搭建私有Claude體驗平臺:Open WebUI + Anthropic API + Trojan完整部署指南

言簡意賅的講解Open WebUI Anthropic API Trojan解決的痛點 身邊的小伙伴們都想體驗Claude&#xff0c;但直接訪問Anthropic API存在網絡連接問題。本文記錄了我如何通過Docker部署Open WebUI&#xff0c;結合網絡代理和Anthropic Manifold Pipe&#xff0c;為團隊搭建了一個…

Hadoop技術棧(一)hadoop搭建與HDFS常用命令

概念 hadoop是一個大數據的分布式存儲&#xff0c;調度&#xff0c;計算框架。也可以說是一個生態圈&#xff0c;包含很多技術&#xff1a;Hive、Hbase、Flume、Kafka... Hadoop的優點 Hadoop具有存儲和處理數據能力的高可靠性。 Hadoop通過可用的計算機集群分配數據&#xf…

electron之win/mac通知免打擾

目錄 系統區別 win&#xff1a;不支持桌面通知&#xff0c;使用氣泡顯示 mac&#xff1a;有鏡像/共享屏幕時 通知免打擾設置 代碼 Vuex&#xff1a;免打擾狀態 src/store/App/mutations.ts src/store/App/state.ts src/views/miracast/index.vue Util 【可選】src/ut…

為什么Integer緩存-128 ~ 127

背景 面試題, 相關問題的考察. 題目大概是, 包裝類型Integer 比較的時候 : -127 ~ 128 是否相等. 其他是否相等? 原理比較的是地址. 如果是不同的對象, 那么就不相等. 實踐 下面是幾個簡單實踐. 全部新建對象 解釋: 新建對象后, 地址不同, 所以都是false不新建對象 暫時的理解…

微軟Wasm學習-創建一個最簡單的c#WebAssembly測試工程

要創建一個最簡單的微軟 WebAssembly&#xff08;Wasm&#xff09;測試工程&#xff0c;最直接的方式是使用 Blazor WebAssembly&#xff0c;這是微軟官方推薦的 WebAssembly 開發框架。下面是創建和運行最簡單 Blazor WebAssembly 項目的步驟&#xff1a; 相關&#xff1a;微…

通過 GitHub520 項目自動獲取最新 Hosts 配置,無需手動查詢 IP。

操作步驟&#xff1a;打開終端Command 空格 聚焦搜索“終端”&#xff0c;打開應用。執行一鍵腳本復制以下命令粘貼到終端運行&#xff08;需輸入密碼授權&#xff09;&#xff1a;bashsed -i "" "/# GitHub520 Host Start/,/# Github520 Host End/d" /et…

C# 目錄與文件操作筆記

一、基本概念1. 數據存儲方式對比存儲方式適用場景特點數據庫存儲大量、關系復雜、有序的數據結構化強&#xff0c;支持復雜查詢和事務文件存儲少量、關系簡單的數據&#xff08;如日志&#xff09;操作簡便&#xff0c;可存儲于任意介質2. 文件與流文件&#xff1a;存儲在磁盤…

docker部署flask并遷移至內網

需要直接使用的可以使用下面的鏈接&#xff1a; 通過網盤分享的文件&#xff1a;docker_flask.tar 鏈接: https://pan.baidu.com/s/163ocPFw8cqfXgVXeejv36g?pwdqxqm 提取碼: qxqm 來自百度網盤超級會員v6的分享 外網部署docker版flask 目錄結構 ./miniconda-docker/ ├── d…