Python
包管理生态中存在多种工具,如 pip
、pip-tools
、poetry
、conda
等,各自具备一定功能。
而今天介绍的uv
是 Astral
公司推出的一款基于 Rust
编写的 Python
包管理工具,旨在成为 “Python 的 Cargo”。
它提供了快速、可靠且易用的包管理体验,在性能、兼容性和功能上都有出色表现,为 Python
项目的开发和管理带来了新的选择
一、 如何安装
# On macOS and Linux.
curl -LsSf https://astral.sh/uv/install.sh | sh
# On Windows.
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
二、如何使用
首先,介绍uv
工具主要使用的两个文件:
pyproject.toml
:定义项目的主要依赖,包括项目名称、版本、描述、支持的Python
版本等信息uv.lock
:记录项目的所有依赖,包括依赖的依赖,且跨平台,确保在不同环境下安装的一致性。这个文件由uv
自动管理,不要手动编辑
常用命令:
#安装指定 Python 版本
uv python install 3.13.2
# 查看已安装和可安装的Python版本
uv python list
#设定要使用的版本,默认为最新
#也可以手动修改".python-version"文件
uv python pin 3.13.2
#依赖添加&移除-会自动修改pyproject.toml文件
uv add pandas
uv remove pandas
#兼容 pip 行为的方式,默认不修改pyproject.toml文件
uv pip install pandas
uv pip uninstallpandas
#运行
uv run hello.py
2.1 创建一个新项目
$ uv init myproject
Initialized project `myproject` at `D:\projects\python\myproject`
$ cd .\myproject\
$ ls
目录: D:\projects\python\myproject
Mode LastWriteTime Length Name
---- ------------- ------ ----
-a---- 2024/12/27 12:06:08 109 .gitignore
-a---- 2024/12/27 12:06:08 5 .python-version
-a---- 2024/12/27 12:06:08 87 hello.py
-a---- 2024/12/27 12:06:08 155 pyproject.toml
-a---- 2024/12/27 12:06:08 0 README.md
2.2 初始化已有项目
#初始化
uv init
#requirements.txt转换成pyproject.toml
uv add -r requirements.txt
#同步项目依赖&下载合适的 Python 版本
uv sync
Comments NOTHING