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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈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…