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

相关推荐
做运维的阿瑞30 分钟前
Python零基础入门:30分钟掌握核心语法与实战应用
开发语言·后端·python·算法·系统架构
Q_Q196328847534 分钟前
python+spring boot洪涝灾害应急信息管理系统 灾情上报 预警发布 应急资源调度 灾情图表展示系统
开发语言·spring boot·python·django·flask·node.js·php
pop_opo_1 小时前
使用 Python + Pygame 键盘控制无人机(AirSim)
python·无人机·pygame
程序猿老罗3 小时前
使用Python轻松实现Word到PDF的批量转换
python·pdf·word
jie*5 小时前
小杰机器学习高级(five)——分类算法的评估标准
人工智能·python·深度学习·神经网络·机器学习·分类·回归
高峰君主6 小时前
构建智能投资视野:用Python打造个性化股票分析系统
开发语言·python·股票
Python极客之家6 小时前
基于机器学习的智能贫血分析预测系统
人工智能·python·机器学习·数据挖掘·毕业设计·数据可视化分析
Q_Q19632884756 小时前
python+uniapp基于微信小程序的医院陪诊预约系统
开发语言·spring boot·python·微信小程序·django·flask·uni-app
2501_915909067 小时前
Python 爬虫 HTTPS 实战,requests httpx aiohttp 抓取技巧、证书问题与抓包调试全流程
爬虫·python·ios·小程序·https·uni-app·iphone