uv教程 虛擬環境

什么是uv

可以創建虛擬環境 安裝依賴

安裝uv

參見官方文檔

安裝 | uv-zh-cn

自定義安裝目錄,win+r 輸入powershell,輸入如下命令

$env:UV_INSTALL_DIR = "C:\Custom\Path";powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

將自定義的目錄加入到path

可以執行uv,說明安裝成功

如果被墻,那就從?https://github.com/astral-sh/uv/releases?下載壓縮包

uv-i686-pc-windows-msvc.zipx86 Windows32位操作系統
uv-x86_64-pc-windows-msvc.zipx64 Windows64位操作系統

解壓到存放目錄,比如D:\uv,然后將目錄D:\uv加入到系統環境變量path

系統環境變量操作見環境變量 - 白月黑羽

更新

uv self update 的行為

1. 檢查當前安裝位置

uv self update 會先確認自己是怎么被安裝的。如果是通過 安裝腳本 install.ps1 安裝的,它會記住 $env:UV_INSTALL_DIR 的路徑(因為腳本就是往那個路徑里放了 uv.exe、uvx.exe、uvw.exe)。

2. 下載最新版本

它會去 astral-sh/uv 的 GitHub Releases 檢查最新 release,并下載對應平臺的壓縮包(Windows 下是 .zip)。

3. 替換現有可執行文件

下載完成后,它會覆蓋你安裝目錄里的舊文件:

C:\Custom\Path\uv.exe C:\Custom\Path\uvx.exe C:\Custom\Path\uvw.exe

如果你用 $env:UV_INSTALL_DIR 自定義了路徑,那么 uv self update 會在那個目錄里直接更新二進制文件,不會跑去默認目錄

已有項目

uv的項目,后續新增庫,等都用uv的命令操作。

完全uv

uv-zh-cn

Python包管理不再頭疼:uv工具快速上手 - wang_yb - 博客園

UV使用教程 - 又一歲榮枯 - 博客園

假設?https://github.com/GiovanniGiacometti/python-repo-template/tree/main?這個是模板

Github配置ssh key的步驟(大白話+包含原理解釋)_github生成ssh key-CSDN博客

1、pycharm中,解釋器選成無解釋器

2、進入項目根目錄,執行 uv sync(命令行或者pycharm的終端都可以), 此時會在項目的根目錄建一個.env文件夾,把找到的python解釋器放進去。uv sync = 統一入口,保證項目有對的python+venv+依賴,一鍵搞定。

uv sync會檢查本地是否存在項目所需的python版本,若沒有,自動去官方下載一個,保證環境可復現。

  • 解析 Python 版本

    • .python-versionpyproject.toml 里寫的 Python 要求(比如 >=3.10,<3.13)。

    • 如果本地有符合的解釋器 → 用本地的。

    • 如果本地沒有 → 去下載對應的獨立 Python(放到 uv python dir)。

  • 創建虛擬環境

    • 在當前項目下生成 .venv/(除非你用 --no-venv)。

    • 把選中的 Python 解釋器復制/鏈接進去。

  • 安裝依賴

    • 讀取 pyproject.tomlrequirements.txt 里的依賴。

    • 解析依賴 → 生成鎖文件 uv.lock

    • 把依賴安裝到 .venv/

uv 下載的python不是下載到了系統里,而是放在了它自己緩存/管理的目錄中,避免和本地已有的python沖突。可以運行uv python list查看這里列出來的也可能是手動下載的,不是通過uv下載的,可以運行uv python dir查看uv下載的python。

自定義python存放路徑
$env:UV_PYTHON_INSTALL_DIR = "D:\uv\python" uv sync

緩存

永久生效就設置到環境變量里,或者使用每個命令的時候加-- cache-dir。具體見uv文檔的命令的章節

如果使用uv sync被攔截,則需要先下載對應的python版本。uv會根據i項目里的python版本,自動查找合適的python版本,去哪找的會顯示

2.1 下載對應的python版本

? ? ? ? 首先輸入?winget search python (Windows 包管理器 (winget) 搜索和 Python 相關的軟件包)查找可以得到的python版本。

將ID列對應的python版本復制下,運行?winget install ID列python版本(Windows 包管理器 (winget) 來安裝 Python x.x),裝好后,它會把 python.exepip.exe 放到系統路徑(通常在 C:\Users\<你>\AppData\Local\Microsoft\WindowsApps),不支持選路徑。

如果不想隨便放,那就自己下載對應的版本放到某個位置,然后運行

uv sync --python "D:\Python313\python.exe"
告訴 uv:不要去自己找/下載 Python 版本,直接用我指定的這一只解釋器來建環境。
uv 讀取項目配置(.python-version 或 pyproject.toml → requires-python)你用 --python 指定了解釋器:D:\Python313\python.exeuv 會檢查:這只解釋器是否存在;它的版本號是否滿足項目要求。如果滿足,就用它來:創建 .venv/ 虛擬環境(.venv\Scripts\python.exe 會指向(復制或鏈接)你指定的 D:\Python313\python.exe。)這樣以后項目始終用這只解釋器,而不會亂掉安裝依賴、生成/更新 uv.lock

3、pycharm,python解釋器,選擇虛擬環境中的python.exe

--------------------------------------------------------------

conda+uv

1、使用conda創建虛擬環境

2、進入i項目的根目錄,執行uv sync -- python "conda虛擬環境里python的目錄"

相當于不人工下載python,讓conda下載python,conda管理自己下載的python。

卸載uv下載的python版本

新建項目

--python 參數

1、在初始化時就指定解釋器路徑或版本號:

本地要有 --python指定的解釋器

uv init myproject --python "D:\Python313\python.exe" 結果:
  • .python-version 會寫成 3.13(對應你給的解釋器)。

  • pyproject.toml[project] requires-python 也會是 >=3.13

  • 以后 uv sync 就會用這只解釋器。

2、先uv init, 再改 .python-version

3、uv sync --python

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

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

相關文章

繞過codex在vscode中登錄403的問題

codex安裝&#xff1a; npm i -g openai/codex codex升級&#xff1a; npm install -g openai/codexlatest 繞過codex在vscode中登錄403的問題&#xff1a; https://linux.do/t/topic/924206/4 1.在windows端powelshell登陸好codex&#xff1b; $env:HTTP_PROXY"http://…

軟件研發如何選對方法論?傳統計劃驅動與敏捷價值驅動的全面對比

軟件項目研發中的方法論是一個核心話題,它決定了團隊如何規劃、執行和交付軟件。下面我將對這些方法論進行一個全面的概述,從傳統的到現代的,并說明它們的核心思想、適用場景和趨勢。 一、 方法論的核心分類 軟件研發方法論主要分為兩大陣營:傳統計劃驅動(Plan-Driven)…

【服務器】將本地項目部署到服務器

當我們已經有了一個服務器后 如何將本地項目部署到服務器呢第一步&#xff0c;找到云服務器實例&#xff0c;查看公網IP地址第二步&#xff0c;推薦使用 Windows 自帶的 PowerShell ssh root你的公網IP # 例如&#xff1a; ssh root47.98.123.45如果超時&#xff0c;首先檢查服…

Flink中的 BinaryRowData 以及大小端

背景 本文基于 Flink 1.17.0 寫此文章的目的是為了說明 Flink 堆內和堆外內存以及 內部 BinaryRowData 行處理的優化。 分析 堆內和堆外內存 跟Spark的內存管理不一樣&#xff0c;Flink 中的堆內和堆外一直都是存在的。 堆內內存&#xff08;JVM Heap&#xff09;存儲用戶對象和…

HTTP/3.0:網絡通信的技術革新與性能飛躍

&#x1f310; HTTP/3.0&#xff1a;網絡通信的技術革新與性能飛躍 Refer&#xff1a;PPP PRIVATE NETWORK? 2 企業級虛擬以太網接入綜合解決方案介紹 &#x1f680; 引言&#xff1a;悄然來臨的網絡革命 你是否曾期待視頻加載卡頓成為過去&#xff1f;YouTube 已經邁出了重…

【golang學習筆記 gin 】1.1 路由封裝和mysql 的使用封裝

安裝gin go get -u github.com/gin-gonic/gin go get -u github.com/go-sql-driver/mysql創建相關目錄 gotest->conifg->database.go->redis.go->controller ->index.go->model->user.go->router->router.gomain.go 創建用戶模型 package model imp…

SQL 層面行轉列

背景&#xff1a;如果對一些評論、點贊、收藏等互動數據&#xff0c;使用了按照 type 分類存儲&#xff0c;num 也是對應的。這樣如果創建一個帖子&#xff0c;那么就會出現 3 行數據&#xff08;type 不同&#xff0c;num 不同&#xff0c;對應評論點贊和收藏&#xff09;&…

langchain4j筆記篇(陽哥)

一 概述1.1 概述langchain4j&#xff1a;langchain for java1.2 作用langchain4j的目標是簡化將LLM集成到java應用程序中的過程。二 案例簡單helloworld2.1 大模型調用三件套1.阿里百煉平臺的通義模型&#xff1a; https://bailian.console.aliyun.com/2獲取api-key&#x…

有鹿機器人的365天奇幻日記:我在景區當掃地僧

第一章 古建守護者&#xff1a;2cm的極致藝術琉璃瓦下的秘密記得那是個晨霧繚繞的清晨&#xff0c;我接到首個重要任務&#xff1a;清掃明代琉璃碑亭。這里的每塊地磚都是文物&#xff0c;傳統清潔工具根本不敢靠近。每天以2cm的精準貼邊沿碑座作業&#xff0c;如今我每周都要為…

Objective-C方法參數標簽怎么設置

在Objective-C中&#xff0c;方法名稱可以通過幾個標簽名稱組成&#xff0c;這是跟C/C中完全不一樣的地方。每個標簽都是字段冒號的寫法&#xff0c;冒號后面是方法的參數&#xff0c;參數包括參數類型和參數變量&#xff0c;其中參數類型要用括號括起。方法參數的標簽是通過在…

20250910_《SQL Server 數據庫事務日志定期清理方案(精簡優化版)》以10.1.1.31服務器的gtp-default數據庫為例

《SQL Server 數據庫事務日志定期清理方案(精簡優化版)》 一、前提條件 數據庫 gtp-default 已設置為完整恢復模式 (FULL)。 每天凌晨02:00執行完整備份,保證日志備份可用。 SQL Server Agent 已啟用。 作業所有者為 sa,具有 sysadmin 權限。 Agent 服務賬號 NT Service\S…

實習項目包裝--HTTP 協議和 Web API

好的&#xff0c;完全沒問題&#xff01;你問到了一個非常核心且基礎的知識領域&#xff0c;這是現代Web開發和幾乎所有網絡應用的基石。我們暫別嵌入式系統&#xff0c;專門來上一堂關于 HTTP 協議和 Web API 的詳細課程。 我會從最根本的概念講起&#xff0c;逐步深入到你所…

ICCV-2025 | 中科院自動化所世界模型助力具身導航!NavMorph:連續環境中的視覺語言導航自演化世界模型

作者&#xff1a;Xuan Yao1,2^{1,2}1,2, Junyu Gao1,2^{1,2}1,2, Changsheng Xu1,2,3^{1,2,3}1,2,3單位&#xff1a;1^{1}1中科院自動化所多模態人工智能系統國家重點實驗室&#xff0c;2^{2}2中國科學院大學人工智能學院&#xff0c;3^{3}3鵬城實驗室論文標題&#xff1a;NavM…

【ARDUINO】ESP8266的AT指令返回內容集合

一、基礎測試指令(確認模塊通信) 1. AT(測試模塊是否響應) 功能:檢測ESP8266與控制器(如Arduino)的串口通信是否正常。 返回內容: 成功:OK(無額外數據,僅確認通信正常) 失敗:無返回(可能是波特率不匹配、接線錯誤) 示例:發送:AT 返回: OK二、Wi-Fi模式配置指…

Mockoon:開源免費的本地Mock服務工具,提升前后端聯調效率

你有沒有過這種經歷&#xff1f;做前端開發時&#xff0c;后端同事的接口還沒寫完&#xff0c;你這邊要調頁面數據&#xff0c;只能對著空控制臺發呆&#xff1f;要么手動寫個 JSON 文件當假數據&#xff0c;改一次數據就得重新保存文件、刷新頁面&#xff1b;要么用在線 Mock …

【Mysql|第一篇】Mysql的安裝與卸載、Navicat工具的使用

一、Mysql的安裝與卸載&#xff1a; 1、查看是否安裝過mysql&#xff1a; &#xff08;1&#xff09;cmd中輸入mysql看是否有顯式提醒 &#xff08;2&#xff09;右擊此電腦&#xff0c;選擇管理&#xff0c;在左側欄中找到服務&#xff0c;查看是否有與mysql相關的 2、卸載的…

貪心算法應用:流行病干預策略問題詳解

Java中的貪心算法應用&#xff1a;流行病干預策略問題詳解 貪心算法是一種在每一步選擇中都采取當前狀態下最優的選擇&#xff0c;從而希望導致全局最優解的算法策略。在流行病干預策略問題中&#xff0c;貪心算法可以有效地幫助我們做出資源分配決策&#xff0c;以達到最優的防…

git刪除最近一次提交包括歷史記錄。

方法一&#xff1a;刪除最近的一次提交&#xff08;最常見&#xff09; 如果你只是想撤銷最后一次提交&#xff0c;這是最簡單的方法。在本地刪除提交 使用 git reset --hard 命令&#xff0c;將你的本地分支回退到上一次提交。Bashgit reset --hard HEAD^HEAD^ 指的是 HEAD 的…

前端拖拽功能實現全攻略

前端拖拽功能實現指南 設計一個拖拽組件確實需要考慮不少細節。下面我為你梳理了從核心思路、關鍵實現到注意事項的完整方案&#xff0c;并用表格對比了 Vue 和 React 的實現差異&#xff0c;希望能幫你全面掌握。 &#x1f9e0; 一、核心設計思路 一個拖拽組件的核心在于感…

ASP.NET MVC 連接 MySQL 數據庫查詢示例

為您創建一個完整的 ASP.NET MVC 應用程序&#xff0c;演示如何通過點擊按鈕連接 MySQL 數據庫并查詢數據表。 完整實現步驟 1. 首先安裝必要的 NuGet 包 在項目中安裝以下 NuGet 包&#xff1a; MySql.Data Dapper&#xff08;可選&#xff0c;用于簡化數據訪問&#xff0…