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 发布!

相关推荐
SSH_55233 小时前
【大模型】情绪对话模型项目研发
人工智能·python·语言模型
love530love3 小时前
【笔记】在 MSYS2(MINGW64)中安装 python-maturin 的记录
运维·开发语言·人工智能·windows·笔记·python
G皮T6 小时前
【Python Cookbook】文件与 IO(二)
python·i/o·io·文件·gzip·stringio·bytesio
封奚泽优6 小时前
使用Python绘制节日祝福——以端午节和儿童节为例
人工智能·python·深度学习
干啥都是小小白6 小时前
话题通信之python实现
python·机器人·ros
仟濹7 小时前
「数据采集与网络爬虫(使用Python工具)」【数据分析全栈攻略:爬虫+处理+可视化+报告】
大数据·爬虫·python·数据挖掘·数据分析
水银嘻嘻7 小时前
03 APP 自动化-定位元素工具&元素定位
python·appium·自动化
蹦蹦跳跳真可爱5897 小时前
Python----目标检测(《用于精确目标检测和语义分割的丰富特征层次结构》和R-CNN)
人工智能·python·深度学习·神经网络·目标检测·cnn
抽风的雨6108 小时前
【python深度学习】Day 42 Grad-CAM与Hook函数
开发语言·python·深度学习
Mikhail_G8 小时前
Python应用for循环临时变量作用域
大数据·运维·开发语言·python·数据分析