UV管理python项目

介绍uv

官网:docs.astral.sh/uv/

一个用 Rust 编写的极快的 Python 包和项目管理器,显示带有基准测试结果的条形图,使用热缓存安装Trio的依赖项。uv是一个python虚拟环境管理工具,可以用来替代pip、pyenv、virtualenv等等工具。根据官网的介绍,使用uv来管理虚拟环境,相比于pip能得到至少10倍以上的性能提升。 亮点

  • 🚀一个工具即可替换pip、、、、、、、等等pip-tools。pipxpoetrypyenvtwinevirtualenv
  • ⚡️比快 10-100 倍pip。
  • 🗂️ 提供全面的项目管理,并带有 通用的锁文件。
  • ❇️运行脚本,支持 内联依赖元数据。
  • 🐍安装和管理Python 版本。
  • 🛠️运行并安装作为 Python 包发布的工具。
  • 🔩 包含与pip 兼容的接口,可通过熟悉的 CLI 提高性能。
  • 🏢 支持可扩展项目的Cargo 风格工作区。
  • 💾 节省磁盘空间,具有用于依赖性重复数据删除的全局缓存。
  • ⏬ 无需 Rust 或 Python 即可通过curl或安装pip。
  • 🖥️ 支持 macOS、Linux 和 Windows。
  • uv 得到了Ruff的创造者 Astral的支持。

uv工具有如下功能

  • 管理python版本; = 管理第三方库(Python packages)的版本;
  • 拥有全局的第三方库的缓存,能减少磁盘空间占用;
  • 安装uv不需要python环境,可以通过curl或pip安装;
  • 多平台支持:macOS、Linux、Windows;

UV环境安装

Linux、MAC

执行以下命令安装

go 复制代码
``` bash
curl -LsSf https://astral.sh/uv/install.sh | sh
或者
wget -qO- https://astral.sh/uv/install.sh | sh
```

按照提示设置环境变量

vbnet 复制代码
```bash
downloading uv 0.7.8 aarch64-apple-darwin
no checksums to verify
installing to /Users/test/.local/bin
uv
uvx
everything's installed!

To add $HOME/.local/bin to your PATH, either restart your shell or run:

    source $HOME/.local/bin/env (sh, bash, zsh)
    source $HOME/.local/bin/env.fish (fish)
WARN: The following commands are shadowed by other commands in your PATH: uv uvx
```

windos

bash 复制代码
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"

基本使用

python 复制代码
# 查找python
! uv python find

# python列表
! uv python list

# Python 3.13 解释器
! uv python list 3.13

# 安装python
! uv python install 3.10

# 卸载指定的版本
! uv python uninstall 3.10

uv创建项目

  • 已有项目

    bash 复制代码
    ➜  cd (uv_test)
    ➜  uv init . -p 3.11.9
  • 新项目

    swift 复制代码
    ➜  uv init (uv_test) -p 3.11.9
  • 同步项目依赖

    arduino 复制代码
    ➜  (uv_test) uv sync
    
    Using CPython 3.11.9
    Creating virtual environment at: .venv
    Resolved 1 package in 9ms
    Audited in 0.19ms
  • 激活虚拟环境

    scss 复制代码
    ➜  (uv_test) source .venv/bin/activate
    (uv-test) ➜  (uv_test) 
  • 运行

    bash 复制代码
    ➜  (uv_test) uv run main.py
    
    Hello from uv-test!
  • 安装python包

    bash 复制代码
    (uv-test) ➜  (uv_test) uv add langchain
    Resolved 28 packages in 4.94s
    Prepared 17 packages in 4.09s
    Installed 28 packages in 51ms
    + annotated-types==0.7.0
    + anyio==4.9.0
    + certifi==2025.4.26
  • 查看当前项目依赖

    bash 复制代码
    (uv-test) ➜  (uv_test) uv tree        
    Resolved 18 packages in 0.65ms
    uv-test v0.1.0
    ├── cantools v40.2.2
    │   ├── argparse-addons v0.12.0
    │   ├── bitstruct v8.21.0
    │   ├── crccheck v1.3.0
    │   ├── diskcache v5.6.3
    │   ├── python-can v4.5.0
    │   │   ├── msgpack v1.1.0
    │   │   ├── packaging v25.0
    │   │   ├── typing-extensions v4.13.2
    │   │   └── wrapt v1.17.2
    │   └── textparser v0.24.0
    └── pandas v2.2.3
        ├── numpy v2.2.6
        ├── python-dateutil v2.9.0.post0
        │   └── six v1.17.0
        ├── pytz v2025.2
        └── tzdata v2025.2
  • 卸载依赖

    bash 复制代码
    (uv-test) ➜  (uv_test) uv remove pandas
    Resolved 12 packages in 6ms
    Uninstalled 32 packages in 290ms
    - annotated-types==0.7.0
    - anyio==4.9.0
    - certifi==2025.4.26
    - charset-normalizer==3.4.2
    - h11==0.16.0

修改源

pypi添加清华源

打开项目中的pyproject.toml文件,在最后添加以下内容:

ini 复制代码
[[index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple/"
default = true 

运行uv add命令的时候也可以指定镜像源

bash 复制代码
uv add --default-index https://pypi.tuna.tsinghua.edu.cn/simple requests

uv也提供了全局的配置项,可以通过环境变量UV_DEFAULT_INDEX配置镜像源

bash 复制代码
export UV_DEFAULT_INDEX=https://pypi.tuna.tsinghua.edu.cn/simple

本文由博客一文多发平台 OpenWrite 发布!

相关推荐
三道杠卷胡3 分钟前
【AI News | 20250804】每日AI进展
人工智能·python·语言模型·github·aigc
小沈熬夜秃头中୧⍤⃝15 分钟前
Python 基础语法(二):流程控制语句详解
开发语言·数据库·python
max50060019 分钟前
基于开源人脸识别模型实现情绪识别功能
python·深度学习·开源·transformer
黄晓魚1 小时前
open3d python 鞋底点云点胶路径识别
开发语言·python·open3d
cxyll12341 小时前
Python接口自动化测试之之request
开发语言·python
树獭叔叔2 小时前
详解 Python 的异步上下文管理器语法
后端·python
leo__5202 小时前
Java的NIO体系详解
java·python·nio
前端Hardy2 小时前
Python是怎么将Vue项目打包成桌面端应用程序的?看这篇就够了
前端·javascript·python
java1234_小锋3 小时前
【NLP舆情分析】基于python微博舆情分析可视化系统(flask+pandas+echarts) 视频教程 - 微博舆情数据可视化分析-热词情感趋势柱状图
python·信息可视化·自然语言处理
麦兜*3 小时前
国产大模型平替方案:Spring Boot通义千问API集成指南
java·spring boot·后端·python·spring cloud·系统架构·springboot