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

UV安装与使用

1. 概述

GitHub:astral-sh/uv: An extremely fast Python package and project manager, written in Rust.
官网:uv
An extremely fast Python package and project manager, written in Rust.
效率神器,基于Rust实现,比传统工具快 10-100 倍。
核心功能:
  • 包管理:支持安装、更新、卸载Python包,速度比pip快10-100倍。
  • 虚拟环境管理:创建和管理项目级虚拟环境,避免依赖冲突。
  • Python版本管理:安装和切换不同版本的Python。
  • 项目依赖管理:通过uv.lock文件锁定依赖版本,确保环境一致性。
  • 工具安装:支持安装和管理工具,如Jupyter、Docker等。
  • 包发布:支持包的发布功能。

2. 安装及使用

2.1 安装

1)独立安装

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

# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
    
# 升级
uv self update

2)PyPI安装

# With pip.
pip install uv

# Or pipx.
pipx install uv

# 升级
pip install --upgrade uv

其他安装方式及卸载,请参考:Installation | uv

3)查看版本

uv version
# uv 0.6.13 (a0f5c7250 2025-04-07)

2.2 使用

1)初始化项目

# uv init <项目目录>
uv init myproject

这将生成项目结构,包含默认文件,如 .gitignorepyproject.toml 、uv.lock和示例代码文件(如 main.py)。

2)创建虚拟环境(或者同步依赖)

# 进入项目目录
uv venv
# 激活环境
.venv\Scripts\activate

# 同步依赖
uv sync

3)安装依赖

uv add mcp[cli] 
uv install requests
# 添加依赖
uv add requests

4)锁定及更新依赖

uv lock
uv install --upgrade requests

运行时,根据python的方式,正常运行程序即可。

3. 设置及技巧

1)配置国内镜像源

在项目根目录创建 uv.toml,添加如下:

index-url = "https://pypi.tuna.tsinghua.edu.cn/simple"

更新后,重新安装依赖,速度飞快。

2)一键更新所有包

uv pip list --outdated | awk '{print $1}' | xargs uv pip install -U

3)多Python版本测试

# 安装多个版本
uv python install 3.10 3.11 3.12

# 创建 Python 3.10 环境
uv venv --python 3.10

# 切换回 3.12
uv venv --python 3.12

$ uv venv --python 3.12.0
Using Python 3.12.0
Creating virtual environment at: .venv
Activate with: source .venv/bin/activate

4)生成最小依赖文件

uv pip freeze --exclude-editable > requirements.txt

http://www.dtcms.com/a/122353.html

相关文章:

  • asp.net core 项目发布到 IIS 服务器
  • 场外期权只适合上涨行情吗?
  • CSS语言的游戏AI
  • ResNet改进(18):添加 CPCA通道先验卷积注意力机制
  • 从个人博客到电商中台:EdgeOne Pages的MCP Server弹性架构×DeepSeek多场景模板实战解析
  • 1.VTK 使用CMakeLists
  • Linux 编程中的 I/O 复用
  • Element UI 设置 el-table-column 宽度 width 为百分比无效
  • React九案例中
  • 敏捷迭代实战经验分享
  • leetcode_数组 189. 轮转数组
  • Odrive0.5.1-FOC电机控制 arm_cos_f32.cpp arm_sin_f32.cpp代码实现(一)
  • 中科岩创基坑自动化监测解决方案
  • 【11】数据结构之基于线性表的查找算法
  • 【消息队列kafka_中间件】一、快速入门分布式消息队列
  • Android 中Intent 相关问题
  • STM32CubeMX-H7-12-IIC读写MPU6050模块(中)-MPU6050模块详解以及软件IIC驱动
  • Node.js是js语言在服务器编译运行的环境,什么是IP和域名
  • Python包管理工具uv简单使用
  • nginx或tengine服务器,配置HTTPS下使用WebSocket的线上环境实践!
  • 【详细】MySQL 8 安装解压即用 (包含MySQL 5 卸载)
  • Python从入门到精通全套视频教程免费
  • UniApp基于xe-upload实现文件上传组件
  • 12. git merge
  • 【LeetCode 题解】数据库:1321.餐馆营业额变化增长
  • 使用RabbitMQ实现异步秒杀
  • 网络安全公司推荐:F5荣膺IDC全球Web应用与API防护领导者
  • 游戏引擎学习第212天
  • TimeDART:结合扩散去噪与自回归建模的时间序列自监督学习新框架
  • oracle 动态性能视图