当前位置: 首页 > web >正文

【python】uv管理器

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.xdnf.cn/news/10314.html

相关文章:

  • PS裁剪后像素未删除?5步解决“删除裁剪像素”失效问题
  • Role of ISMEAR in insulator-conductor transition
  • Java-Character类静态方法深度剖析
  • Day08
  • 每日算法刷题Day19 5.31:leetcode二分答案3道题,用时1h
  • 本地部署基于 Kibana 开源搜索引擎 Elasticsearch 并实现外部访问
  • acwing刷题
  • 【Rust 轻松构建轻量级多端桌面应用】
  • 【沉浸式求职学习day51】【发送邮件】【javaweb结尾】
  • Kafka 的 ISR 机制深度解析:保障数据可靠性的核心防线
  • 在RTX5060Ti上进行Qwen3-4B的GRPO强化微调
  • 尚硅谷redis7 93-97 springboot整合reids之总体概述
  • LeetCode - 206. 反转链表
  • IDM下载器 Internet Download Manager v6.42 Build 39
  • 高考加油!UI界面生成器!
  • 设计模式——系统数据建模设计
  • Qt SQL模块基础
  • 【Net】TCP粘包与半包
  • AI学习笔记(一)背景学习
  • 【Docker系列】Docker 容器内安装`ps`命令
  • 数据结构:栈(Stack)和堆(Heap)
  • 通过mqtt 点灯
  • SQL Server 事务详解:概念、特性、隔离级别与实践
  • leetcode hot100刷题日记——33.二叉树的层序遍历
  • 应急响应靶机-web2-知攻善防实验室
  • Kafka消息中间件
  • CentOS 7 安装docker缺少slirp4netnsy依赖解决方案
  • 如何评估CAN总线信号质量
  • 数字化浪潮下:信息化教学模式与人工智能的协同创新发展研究
  • 守护生命之光:进行性核上性麻痹的全方位健康护理指南