uv简单入门指南

uv简单入门指南

前言

在学习斯坦福大学2025年春季的CS336时,第一次作业使用到了uv,所以有了本篇记录。

uv是一款基于Rust开发的高速Python依赖管理和项目管理工具,GitHub仓库链接在这里

如果想要全面的的了解uv,阅读文档是最好的方法。

安装uv

在Linux或者MacOS的命令行中执行如下命令。

curl -LsSf https://astral.sh/uv/install.sh | sh

我使用的是MacOS,还可以直接使用homebrew进行包管理,在命令行中直接执行如下命令。

brew install uv

如果使用的是Windows,则Powershell中执行如下命令。

powershell -c "irm https://astral.sh/uv/install.ps1 | iex"

如果想要更新uv,应该再命令行中执行如下命令。

uv self update

使用uv

更换镜像源

出于中国大陆的网络问题,我们在使用uv进行依赖安装的时候需要进行换源,这里我使用的是设置当前Shell环境变量的方式,在我的.zshrc配置文件中添加了如下内容。

export UV_INDEX_URL=https://pypi.tuna.tsinghua.edu.cn/simple

或者也可以在项目的pyproject.toml中加入以下内容

[[tool.uv.index]]
url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"
default = true
 
[tool.uv.pip]
index-url = "https://mirrors.tuna.tsinghua.edu.cn/pypi/web/simple"

Python版本管理

学习uv的使用,首先学习如何使用uv进行Python版本管理。

  • uv python install:安装 Python 版本。
  • uv python list:查看可用的 Python 版本。
  • uv python find:查找已安装的 Python 版本。
  • uv python pin:为当前项目指定使用的 Python 版本。
  • uv python uninstall:卸载 Python 版本。

例如,如果想要安装3.12版本的Python,应该使用uv python install 3.12

运行Python文件

  • uv run:运行脚本。

例如,使用uv run main.py来运行main.py这个Python文件。

项目管理

  • uv init:创建一个新项目。
  • uv add:向项目添加依赖。
  • uv remove:从项目中移除依赖。
  • uv sync:同步项目依赖到环境。
  • uv lock:为项目依赖创建锁文件。
  • uv run:在项目环境中运行命令。
  • uv tree:查看项目的依赖树。
  • uv build:构建项目的分发包。
  • uv publish:将项目发布到包索引。

简单流程

使用uv创建一个项目的简单流程如下。

首先在命令行中使用uv init创建一个新的Python项目。

uv init HelloWorld
cd HelloWorld

uv会自动创建以下文件。

  • .python-version:记录这个项目需要用哪个Python版本。
  • README.md:项目的介绍文档。
  • hello.py:演示代码。
  • pyproject.toml:项目配置与依赖定义文件。

使用uv run 命令来运行Python文件。

un run hello.py

环境管理

第一次运行项目命令时,uv会在项目的根目录下创建一个虚拟环境.venvuv.lock文件。

我以前使用Conda进行环境的管理,但是在uv中主要是使用venv。

例如使用uv创建一个Python3.12的环境,在命令行中执行如下操作。

uv venv --python 3.12

这样Python解释器会存放在当前目录的.venv中,可以使用source .venv/bin/activate命令进行激活,使用deactivate命令进行退出,十分方便。

依赖管理

在进行项目依赖管理的时候,使用uv add uv remove 命令来添加或者删除依赖,当然也可以使用经典的pip工具,只是需要加上uv的前缀,使用uv安装依赖是十分快速的。

uv pip install pandas
uv pip uninstall pandas
uv add requests
uv remove requests

如果要导出常用的requirements.txt文件,应该使用freeze命令。

uv pip freeze
posted @ 2025-07-01 18:24  ShaneYale  阅读(487)  评论(0)    收藏  举报