【python】uv管理器

article/2025/6/19 5:59:56

uv是一个速度极快的 Python 包和项目管理器,用 Rust 编写。

安装

安装uv之前,确保你的电脑不需要安装了python

在Windows下,可以使用官方的脚本直接安装

powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

在Linux下使用如下命令安装

curl -LsSf https://astral.sh/uv/install.sh | sh

安装成功

uv的下载没有进度条,所以卡住了大概率是网络的问题,请自行解决。

后续将使用基于WSL的Ubuntu 22.04.5 LTS以及uv 0.7.9演示,这里说下网络问题。以下方法适用于 Windows 11 22H2 和 WSL 2.0.5 及以上版本:

  1. 在你的“网络优化软件”中启用“局域网连接”,代理模式选择http(默认一般是这个)
  2. 搜索WSL Settings,网络模式改为Mirrored
    网络模式

使用wget google.com验证:
一切没问题
但是ping是ping不过去的,别想了,此外,每次将系统代理关掉都需要重启WSL(否则WSL将无法联网)。而且WSL无法使用Linux的reboot命令,而是需要在主机中执行:

wsl --shutdown

然后重新访问WSL,就重启成功了。

uv python

uv和conda一样,可以对安装的python进行管理。比如我在安装uv之前,电脑上就已经有python了,这时执行uv python list,就会看到我安装的python:
对python进行管理
这样就可以安装某个特定版本的python:

uv python install 3.12

uv与项目

使用如下命令初始化一个名为uv_test的python项目:

uv init uv_test

UV 将创建以下文件:

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

使用如下命令运行:

uv run main.py

运行结果
uv运行时会自动创建一个.venv虚拟环境,类似官方的venv
完整的列表如下所示:

.
├── .venv
│   ├── bin
│   ├── lib
│   └── pyvenv.cfg
├── .python-version
├── README.md
├── main.py
├── pyproject.toml
└── uv.lock

pyproject.toml

包含有关项目的元数据:

[project]
name = "uv-test"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.10"
dependencies = []

与官方的管理文件格式一致(我都不知道python还有这玩意。。。),Python从PEP 518开始引入的使用pyproject.toml管理项目元数据的方案,具体可以看python官方的介绍:https://packaging.python.org/en/latest/guides/writing-pyproject-toml/

uv不会读取pip的配置,所以要单独设置镜像地址。可以在配置文件里指明镜像地址。以阿里云源为例子,在上述文件追加如下内容:

[[tool.uv.index]]
url = "https://mirrors.aliyun.com/pypi/simple/"
default = true

requests库为例,使用如下命令安装:

uv add requests

会自动从镜像下载安装:
安装结果
还可以指定版本约束或替代源:

# Specify a version constraint
uv add 'requests==2.31.0'# Add a git dependency
uv add git+https://github.com/psf/requests# 临时从某个镜像安装
uv add --default-index https://pypi.tuna.tsinghua.edu.cn/simple requests

要删除包,可以使用 :uv remove

uv remove requests

.python-version

该文件包含项目的默认 Python 版本。此文件告诉 uv 使用哪个 Python 版本。

.venv

该文件夹包含项目的虚拟环境,即 Python 环境,即 与系统的其余部分隔离。这是 uv 将安装项目依赖项的位置。

uv.lock

uv.lock是一个跨平台的 lockfile,其中包含有关项目的 依赖。与 which 不同,它用于指定 project 中,lockfile 包含项目中安装的确切解析版本 环境。此文件应签入版本控制中,以实现一致且 跨计算机可重复安装。
uv.lock是人类可读的 TOML 文件,但由 uv 管理,不应手动编辑。

使用如下命令构建发行版:

uv build

在这里插入图片描述
默认情况下,将在当前目录中构建项目,并将构建的文件放在子目录dist/


http://www.hkcw.cn/article/NpFWSqsoDb.shtml

相关文章

2021 年 12 月大学英语四级考试真题(第 1 2 3 套)——解析版——篇章题

🏠个人主页:fo安方的博客✨ 💂个人简历:大家好,我是fo安方,目前中南大学MBA在读,也考取过HCIE Cloud Computing、CCIE Security、PMP、CISP、RHCE、CCNP RS、PEST 3等证书。🐳 &…

【Linux】mmap文件内存映射

📝前言: 这篇文章我们来讲讲Linux——mmap mmap介绍mmap接口介绍mmap使用示例 🎬个人简介:努力学习ing 📋个人专栏:Linux 🎀CSDN主页 愚润求学 🌄其他专栏:C学习笔记&a…

深度学习驱动的超高清图修复技术——综述

Deep Learning-Driven Ultra-High-Definition Image Restoration: A Survey Liyan Wang, Weixiang Zhou, Cong Wang, Kin-Man Lam, Zhixun Su, Jinshan Pan Abstract Ultra-high-definition (UHD) image restoration​​ aims to specifically solve the problem of ​​quali…

【Docker系列】Docker 容器内安装`ps`命令

博客目录 一、为什么需要在 Docker 容器中安装ps命令二、不同 Linux 发行版的安装方法1. Alpine Linux 镜像的安装方法2. Debian/Ubuntu 镜像的安装方法3. CentOS/RHEL 镜像的安装方法 三、验证安装与基本使用四、永久解决方案:修改 Dockerfile1. Alpine 基础镜像的…

【KWDB 创作者计划】_再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践

再热垃圾发电汽轮机仿真与监控系统:KaiwuDB 批量插入10万条数据性能优化实践 我是一台N25-3.82/390型汽轮机,心脏在5500转/分的轰鸣中跳动。垃圾焚烧炉是我的胃,将人类遗弃的残渣转化为金色蒸汽,沿管道涌入我的胸腔。 清晨&#x…

对蚁群算法的理解和实例详解

目录 一、算法概述 二、实例详解 1)问题分析 2)初始化参数 2)设置蚂蚁初始位置 3)选择路径 4)记录本次最佳路径 5)更新信息素 6)清空禁忌表 三、计算结果 四、总结 一、算法概述 一群…

【PowerPoint专栏】PowerPoint的保存选项

在PowerPoint的保存选项中有非常多的可用选项,保存的类型也非常多。 在PowerPoint中的工具选项中同样有一些相关的菜单操作帮助用户完成一些特殊操作。 在

直击2025粤港澳大湾区车展 科技引领未来车展

5月31日,第二十九届粤港澳大湾区车展在深圳国际会展中心(宝安)拉开帷幕。本届车展延续“面向科技、面向未来、面向市场”的主题,以“科技Alpha车展”为核心方向,探索汽车前沿科技。展会规模超过26万平方米,有超8万平方米的户外活动体验区及试驾专区。车展期间,全球近百家…

新王加冕!巴黎5比0国米首夺欧冠 年轻风暴席卷欧洲

北京时间6月1日凌晨,2024至2025赛季欧冠联赛决赛在德国慕尼黑安联球场进行。经过90分钟的激战,法甲巴黎圣日耳曼队以5比0大胜意甲国际米兰队,夺得队史首座“大耳朵杯”。此前的淘汰赛中,“大巴黎”先后淘汰了利物浦队、阿斯顿维拉队和阿森纳队三支英超劲旅。而国米则在半决…

定制一款国密浏览器(13):预置国密根证书到浏览器

由于国密算法没有得到国外的认可,所以 Chromium、Firefox 等浏览器均不支持国密算法。即使我们修改了 Chromium 的源码,增加了国密算法的支持,但还不能在浏览器中正常使用。因为这涉及到证书的信任问题,国密证书都是国内厂商签发的,国密根证书并没有集成到系统和浏览器中。…

新闻数据加载(鸿蒙App开发实战)

本案例基于ArkTS的声明式开发范式,介绍了数据请求和onTouch事件的使用。包含以下功能: 数据请求。列表下拉刷新。列表上拉加载。 网络数据请求需要权限:ohos.permission.INTERNET 一、案例效果截图 操作说明: 点击应用进入主页…

Baklib企业CMS全流程管控与智能协作

企业CMS全流程管控方案解析 现代企业内容管理中,全流程管控的实现依赖于对生产、审核、发布及迭代环节的系统化整合。通过动态发布引擎与元数据智能标记技术,系统可自动匹配内容与目标场景,实现标准化模板驱动的快速部署。针对多分支机构的复…

当前用户的Git全局配置情况:git config --global --list

通过config命令可以查询当前用户的全局配置情况。这些配置项定义了 Git 在全局范围内的行为,包括如何处理大文件、SSL 证书验证以及提交时的用户信息。 git config --global --list http.sslVerifyfalse 这个配置项禁用了 SSL 证书验证。这在与自签名证书的 Git 服…

编辑器之神 Vim

终于到了主包最期待的环节了 简单介绍 这是linux中最能装逼的一个环节 服务器哪有界面版的,都是纯粹的命令行 这个时候操作就比较复杂,需要使用一些另类的编辑器 介绍几个编辑器吧 vi nano emacs vim,这些都是命令版的编辑器,基…

任务19:实现山东省气温预测

任务描述 知识点: 时间序列分析 重 点: 指数平滑法ARIMA模型Python连接数据库,查询数据 内 容: 读取并创建时序数据使用指数平滑法建立模型,并预测下一年山东省各月的平均气温使用ARIMA建立模型,并…

C++ - STL #什么是STL #STL的版本 #闭源开源 #STL的六大组件

文章目录 前言 一、什么是STL 二、STL的版本 1、原始版本 2、P.J.版本 3、RW版本 4、SGI版本 三、闭源、开源 四、STL的六大组件 总结 前言 路漫漫其修远兮,吾将上下而求索; 一、什么是STL STL(standard template libaray 标准模板库)&#…

学习STC51单片机22(芯片为STC89C52RCRC)

记住这个AT指令千万不要去脑子记,要用手册查 每日一言 努力不是为了感动谁,而是为了不辜负自己的野心。 硬件:ESP8266 wife模块 蓝牙,ESP-01s,Zigbee,NB-lot等通信模块都是基于AT指令的设计 老样子 我们用…

华为OD机试真题——统计匹配的二元组个数(2025A卷:100分)Java/python/JavaScript/C++/C语言/GO六种最佳实现

2025 A卷 100分 题型 本文涵盖详细的问题分析、解题思路、代码实现、代码详解、测试用例以及综合分析; 并提供Java、python、JavaScript、C++、C语言、GO六种语言的最佳实现方式! 2025华为OD真题目录+全流程解析/备考攻略/经验分享 华为OD机试真题《统计匹配的二元组个数》:…

LLMTIME: 不用微调!如何用大模型玩转时间序列预测?

今天是端午节,端午安康!值此传统佳节之际,我想和大家分享一篇关于基于大语言模型的时序预测算法——LLMTIME。随着人工智能技术的飞速发展,利用大型预训练语言模型(LLM)进行时间序列预测成为一个新兴且极具…

Unity3D仿星露谷物语开发56之保存角色位置到文件

1、目标 游戏中通过Save Game保存角色位置,当重启游戏后,通过Load Game可以恢复角色的位置。 2、Player对象操作 (1)组件添加 给Hierarchy下的Player组件添加Generate GUID组件。 (2)修改SceneSave.cs脚…