Python uv包管理

Tags
Python
Last edited time
Aug 13, 2025 10:35 PM
uv是一个新的Python包管理工具。第一次接触是在看MCP server开发教程的时候。
它号称比pip快10-100倍。我的体验是可以让项目更工程化的管理,感觉有点像js的pnpm 包管理,而且它也使用中心化来存储和复用包。

项目结构

uv init example会产生以下项目结构:
. ├── .gitignore ├── .python-version ├── README.md ├── main.py └── pyproject.toml
初始项目结构
使用uv add [package] 会创建.venv 文件夹并在工作目录下创建虚拟环境。
使用uv runuv sync, uv lock 会创建uv.lock 文件。
. ├── .venv │ ├── bin │ ├── lib │ └── pyvenv.cfg ├── .python-version ├── README.md ├── main.py ├── pyproject.toml └── uv.lock
完整项目结构

项目依赖

使用uv add [package] 将包加入依赖并下载。
使用uv add -r requirements.txt从文本中添加依赖。
使用uv lock --upgrade-package [package]升级包,--upgrade-package 标志将尝试将指定的包更新为最新的兼容版本,同时保持锁定文件的其余部分不变。

运行指令

uv run -- flask run -p 3000 在项目文件夹下运行指令。
或者,使用uv sync来手动更新虚拟环境,然后激活虚拟环境:
uv sync source .venv/bin/activate flask run -p 3000 python example.py