本文将简单介绍如何使用uv管理项目。uv作为最近兴起的python环境工具,其具备的优势有:
macos 和 linux 执行以下命令
curl -LsSf https://astral.sh/uv/install.sh | sh
创建项目文件夹,在项目文件夹下执行代码:
uv init
这会创建main.py ,pyproject.toml ,README.md 还有 .gitignore文件,直接初始化为一个git 项目。 pyproject.toml 文件存放项目元信息(描述和版本)和 相关依赖。
比如我要开发一个mcp服务器:
uv add mcp
这会将依赖的信息写入pyproject.toml 中,同时自动在项目目录下创建一个.venv文件,将相关的包写入.venv中。同时会生成一个uv.lock文件。这个文件存放了根据pyproject.toml 依赖具体下载的各种依赖版本,而不是一个>0.xx版本的描述,这个文件可以让交付的时候保证开发环境完全一致。
当其他人下载或克隆了项目之后直接执行:
uv sync --frozen
会按 uv.lock 把环境装到一致。同时自己开发的过程如果移除过一些包,执行这个命令可以清理项目无关的依赖。 如果是自己在开发下直接使用uv sync,这个非严格模式会更新锁。
移除依赖的命令如下:
uv remove requests
假如现在我们配置好相关依赖,就可以执行代码,因为依赖安装在.venv中,按照传统的方式可能需要激活环境,但是uv简化了这个过程,直接执行:
uv run main.py
除此之外,有时候需要执行某个脚本工具,但是不想污染系统python环境和项目的.venv的环境,就使用uvx命令,其可以创建一个临时的虚拟环境:
uvx ruff check .
有时候某些代码需要指定python版本,可以通过以下命令安装指定版本的python:
uv python install 3.12
安装后在项目根目录下执行:
uv python pin 3.12
如果不涉及到gpu,cuda等需要大量二进制预编译的环境,使用uv其实已经满足大部分需求了,比起conda的环境管理要更加方便。
本文作者:James
本文链接:
版权声明:本博客所有文章除特别声明外,均采用 BY-NC-SA 许可协议。转载请注明出处!