UV使用

news/2025/10/6 18:13:36/文章来源:https://www.cnblogs.com/conpi/p/19127791

安装UV

已有python环境,直接通过pip安装:

pip install uv

或者通过命令来运行:

# windows环境,在powershell窗口执行:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"# Mac OS 或 Linux
curl -LsSf https://astral.sh/uv/install.sh | sh

项目管理流程

1)创建项目或项目环境

# 创建项目环境同时自动创建文件夹
uv init project_name   # project_name为自己的项目文件夹名称# 如果是已有的项目文件夹
cd project_name   # 进入项目文件夹
uv init

执行上述命令后,会自动在文件夹下生成如下文件或文件夹,其中如果已有main.py,不会覆盖,自动创建的main.py只是个示例文件:

├── .python-version
├── README.md
├── main.py
└── pyproject.toml
└── .gitignore
.git

其中两个重点文件:

pyproject.toml是uv用于指定依赖项以及项目信息的文件,可以手动编辑此文件,使用uv add以及uv remove工具时,会自动更新此文件。

.python-version是用于管理python版本的文件

2) 创建虚拟环境

   uv venv

3) 激活虚拟环境

\# linux/mac 
source .venv/bin/activate  
# windows 
.venv\Scripts\activate

使用中发现,好像不需要特意激活

4)创建虚拟环境并生成lock文件

# 如果是新项目,运行如下命令,会创建.venv环境以及uv.lock文件
uv sync# 如果希望从之前的requirements.txt文件导入,会自动安装对应的包,并创建.venv环境以及uv.lock文件
uv add -r requirements.txt

其中:uv.lcok文件是一个toml格式文件,用于记录每个依赖及其子依赖的哈希值和下载源,确保环境一致性,不应该手动编辑,依赖于pyproject.toml文件来生成

5)添加、删除、更新、查看包

# 强烈不建议使用uv pip install命令,不会自动更新pyproject.toml文件
# 应该使用如下命令
uv add package  # package为需安装的包名称
uv add "fastapi>=0.68.0" # fastapi的版本为0.68.0
uv remove package 
uv tree  # 树形结构显示已安装的包以及包依赖
uv pip list  # 会显示由uv管理和不由uv管理的所有安装包比如使用uv pip install安装的包
uv lock --upgrade-package loguru  # 更新包
uv lock --upgrade #更新依赖# 更多命令
uv add --group dev pandas  # 安装到开发环境
uv add --group production requests  # 安装到生产环境
uv add "httpx>=0.20"  # 版本条件

6)运行程序

# uv自动按照当前目录下的.venv识别和调用虚拟环境来运行
uv run your_script.py

配置镜像源

# 在pyproject.toml中,添加如下内容,url为自行添加的镜像源地址:
[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple"
default = true# 在终端中临时使用指定镜像源,包的名字在最后
uv add --default-index https://mirrors.aliyun.com/pypi/simple playwright# 国内常用镜像源列表
清华大学 (TUNA): https://pypi.tuna.tsinghua.edu.cn/simple
阿里云 (Aliyun): https://mirrors.aliyun.com/pypi/simple/
中国科学技术大学 (USTC): https://pypi.mirrors.ustc.edu.cn/simple/
豆瓣 (Douban): http://pypi.douban.com/simple/
华为云 (Huawei Cloud): https://repo.huaweicloud.com/repository/pypi/simple

配置python版本

# 创建或初始化项目时
uv venv .venv --python 3.10   # 指定python版本# 在项目.venv已创建后,希望修改python版本
手动更改项目python版本。在pyproject.toml以及.python-version中更改版本之后,执行uv sync就会自动安装新版本pythonuv python list # 列出所有可用的python版本,包括本地已安装的版本
uv python install 3.13.2 # 使用uv安装指定版本的python

lock和sync

uv lock
# 精确依赖记录:根据 pyproject.toml 解析依赖关系,生成或更新 uv.lock 文件,
# 记录所有依赖及其子依赖的 精确版本、哈希值、下载源,确保开发、测试、生产环境的依赖完全一致,
# 避免因版本差异导致的兼容性问题
# 依赖树解析:基于 PubGrub 算法智能选择兼容版本,解决依赖冲突
# 哈希验证:依赖包的哈希值记录在 uv.lock 中,安装时校验完整性,防止篡改或损坏uv lock --check  # 检查更新
uv lock --update  # 强制重新解析依赖uv sync 
# 根据锁定文件"uv.lock"安装依赖,使当前环境依赖与锁定文件完全一致,不会自动更新pyproject.toml
# 根据 uv.lock 或 pyproject.toml 安装或更新依赖,使虚拟环境与声明文件完全一致
# 卸载环境中未在锁文件中声明的多余依赖,保持环境纯净
# 利用全局缓存(默认路径 ~/.cache/uv)复用已下载的包,减少网络传输和重复构建

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/929585.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

自己做的网站被举报违反广告法潍坊定制网站搭建

介绍多态性是为不同的基础形式(例如,数据类型或类)利用同一接口的能力。这允许函数在不同时间使用不同类型的实体。对于Python中的面向对象编程,这意味着可以用与属于特定类的特定对象相同的方式来使用它,就好像它是属于不同类的不同对象一样…

卖家如何做阿里巴巴国际网站设计logo网站免费南蒲四特

1.1 工作中心的定义 工作中心是用于生产产品的生产资源,包括机器、人和设备,是各种生产或能力加工单元的总称。工作中心属于能力的范畴即计划的范畴,而不属于固定资产或者设备管理的范畴。一个工作中心可以是一台设备、一组功能相同的…

CT5120 Intro to Natural Lang. Processing Lab # 4. Text Classification

CT5120 Intro to Natural Lang. Processing Lab # 4. Text Classification# 4. Text Classification## 4.0 Learning Objectives * Conduct exploratory data analysis (EDA)* Preprocess text* Feature extraction* T…

合肥光束网站建设网站页面架构怎么写

目录 1 概述 2 数学模型 2.1 问题表述 2.2 DG的最佳位置和容量(解析法) 2.3 使用 GA 进行最佳功率因数确定和 DG 分配 3 仿真结果与讨论 3.1 33 节点测试配电系统的仿真 3.2 69 节点测试配电系统仿真 4 结论 1 概述 为了使系统网损达到最低值&a…

西安网站建设设计的好公司排名做网站的收钱不管了

文章目录 Lookup Join(维表 Join) Lookup Join(维表 Join) Lookup Join 定义(支持 Batch\Streaming):Lookup Join 其实就是维表 Join,比如拿离线数仓来说,常常会有用户画像,设备画像等数据,而对应到实时数仓场景中,这种实时获取外部缓存的 Join 就叫做维表 Join。…

自建网站需要哪些技术网站空间容量

C Primer(第5版) 练习 10.24 练习 10.24 给定一个string,使用bind和check_size在一个int的vector中查找第一个大于string长度的值。。 环境:Linux Ubuntu(云服务器) 工具:vim 代码块 /*****…

网络科技公司网站首页说一说网站建设的含义

送给大家一句话: 世界在旋转,我们跌跌撞撞前进,这就够了 —— 阿贝尔 加缪 vector问题解决 1 前言2 迭代器区间拷贝3 迭代器失效问题4 memcpy拷贝问题 1 前言 我们之前实现了手搓vector,但是当时依然有些问题没有解决&#xff…

动手实验——mybatis generator

前言 边学边做中 mapper的用处是和数据库交互,具体的行为找了一个mapper文件,让chatgpt讲解了一下,如下: 首先是方法表 | 方法 | 功能 | 是否常用 | | -----------------------…

迅速了解GO+ElasticSearch

pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", "Courier New", …

学生管理系统面向对象分析报告

学生管理系统面向对象分析报告 目录1. 案例中哪里体现出了封装性及其好处? 2. 案例中的setter/getter模式与封装性? 3. 案例中某些类的toString()方法? 4. 案例中几个常用方法解析。 5. 案例中的面向对象设计 5.1 尝…

荷兰青少年通过Telegram被招募,涉嫌参与俄罗斯支持的黑客活动

两名17岁荷兰青少年通过Telegram被招募,涉嫌为亲俄黑客从事间谍活动。他们使用Wi-Fi嗅探器在欧盟机构总部和使馆周边进行网络测绘,目前一人被拘留,一人被软禁。案件凸显国家支持黑客利用未成年人作为"可抛弃代…

网站推广策划方案毕业设计免费建立网站有必要吗

一个master可以拥有多个slave,一个slave又可以拥有多个slave,如此下去,形成了强大的多级服务器集群架构 比如,将ip为192.168.1.10的机器作为主服务器,将ip为192.168.1.11的机器作为从服务器 说明:ip可以换为…

网站开发部门工资入什么科目营销一体化营销平台

org.springframework.util.StringUtils 1、字符串判断工具 // 判断字符串是否为 null,或 ""。注意,包含空白符的字符串为非空 boolean isEmpty(Object str) // 判断字符串是否是以指定内容结束。忽略大小写 boolean endsWithIgnoreCase…

Moscow International Workshops 2017. Day 4. Lviv NU Contest, GP of Ukraine

Preface 国庆本以为空的一批结果忙的飞起,好不容易抽时间凑到三个人,结果被 Div2 小登们按在地上摩擦。B. Card Game 签到,暴力枚举约数即可 #include<cstdio> #include<iostream> #include<map>…

网站开发有哪些技术wordpress新建音乐界面

转载自 ClassLoader 详解及用途 ClassLoader主要对类的请求提供服务&#xff0c;当JVM需要某类时&#xff0c;它根据名称向ClassLoader要求这个类&#xff0c;然后由ClassLoader返回这个类的class对象。 1.1 几个相关概念ClassLoader负责载入系统的所有Resources&#xff08;…

提供手机自适应网站土木工程网官网登录

Hadoop 1、 Hadoop的介绍 Hadoop最早起源于Nutch。Nutch的设计目标是构建一个大型的全网搜索引擎&#xff0c;包括网页抓取、索引、查询等功能&#xff0c;但随着抓取网页数量的增加&#xff0c;遇到了严重的可扩展性问题——如何解决数十亿网页的存储和索引问题。2003年、20…

云原生架构的演进与落地:重塑企业 IT 的核心能力 - 实践

云原生架构的演进与落地:重塑企业 IT 的核心能力 - 实践2025-10-06 17:49 tlnshuju 阅读(0) 评论(0) 收藏 举报pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important;…

小代码使用npm包的方法

小代码使用npm包的方法pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Consolas", "Monaco", &quo…

用手机域名做网站有多少张家口网站建设工作室

以下是电力行业中分布式能源管理(Distributed Energy Management System, DEMS)的实现方案,涵盖系统架构、关键技术、核心功能及实施路径,结合典型场景与代码示例: 一、系统架构设计 采用云-边-端三层架构,实现分布式能源的高效协同管理: 1. 终端层(感知层) 设备组…

网站做支付宝接口网页设计基础试题

Java Learning Path&#xff08;三&#xff09;过程篇   每个人的学习方法是不同的&#xff0c;一个人的方法不见得适合另一个人&#xff0c;我只能是谈自己的学习方法。因为我学习Java是完全自学的&#xff0c;从来没有问过别人&#xff0c;所以学习的过程基本上完全是自己…