uv使用
uv 是一个用 Rust 编写的、速度极快的 Python 包和项目管理工具,由 ruff 的作者开发。它的目标是成为 pip、venv、virtualenv 和 pip-tools 等工具的直接替代品,提供一个统一、快速且易于使用的体验。
本文总结了如何安装和使用 uv。
官方仓库:
uv使用
一、简介
如果你对 Python 的包管理生态有所了解,你可能用过 pip 来安装包,用 venv 或 virtualenv 来创建虚拟环境,用 pip-tools 来锁定依赖。这些工具各司其职,但组合使用起来有时会显得有些繁琐。
uv 的出现就是为了解决这个问题。它将包安装、虚拟环境管理和依赖解析等功能集成到了一个单一的命令行工具中,并且性能极高。
主要特点:
- 极速:
uv利用了先进的依赖解析算法和全局缓存,安装和解析包的速度比pip快得多。 - 一体化: 无需在
pip和venv之间切换,uv提供了统一的命令来处理大多数包和环境管理任务。 - 直接替代:
uv的命令设计与pip非常相似(例如uv pip install),使得迁移成本非常低。 - 依赖锁定: 内置了类似
pip-tools的功能,可以从pyproject.toml或requirements.in文件编译生成锁定的requirements.txt文件。
二、安装
uv 提供了多种安装方式:
macOS 和 Linux
使用 curl:
curl -LsSf https://astral.sh/uv/install.sh | shWindows
使用 PowerShell:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"其他方式
也可以通过 pip、brew 等包管理器安装:
# 通过 pippip install uv# 通过 Homebrewbrew install uv安装完成后,可以通过 uv --version 来验证是否成功。
三、基本使用
uv 的使用非常直观,特别是对于熟悉 pip 和 venv 的用户。
1、管理python版本
使用如下命令,显示出当前环境中所有可用的python版本(包括已经安装的和可以安装的)
uv python list如果需要安装其他版本的python,使用如下命令
uv python install 3.12除了标准python之外,还可以安装其他的Python实现,比如PyPy实现的python:
uv python install pypy@3.10查找某个python版本的路径:
❯ uv python find 3.10/Library/Frameworks/Python.framework/Versions/3.10/bin/python3.10四、单个脚本使用
参考:
uv 可以管理单文件脚本的依赖项和环境;
例如:创建一个新脚本并添加内联元数据来声明其依赖项:
$ echo 'import requests; print(requests.get("https://astral.sh"))' > example.py$ uv add --script example.py requestsUpdated `example.py`然后,在隔离的虚拟环境中运行脚本:
$ uv run example.pyReading inline script metadata from: example.pyInstalled 5 packages in 12ms<Response [200]>五、项目中使用
1、选用python版本
在具体的某个项目中,进入项目目录,使用如下命令指定选用的python版本:
uv python pin 版本号这个命令会在指定目录下创建一个.python-version文件,内容如下:
❯ uv python pin 3.10 Pinned `.python-version` to `3.10`❯ cat .python-version 3.10注意:这里选用的python版本只和uv管理的虚拟环境有关系,和我们全局的python、python3命令都没有关系!
2、创建虚拟环境
创建项目有两种方式,第一种方式,先创建好项目目录,然后设置python版本并初始化uv虚拟环境:...
剩余内容已隐藏