uv可替代pip管理Python依赖,通过uv init自动初始化项目并创建隔离环境,支持三种安装方式、sync同步锁文件确保环境一致、remove/update管理依赖、export导出精确requirements.txt。

你想用 uv 替代 pip 管理 Python 项目依赖,避免安装慢、版本冲突、环境不一致等问题,同时保留 pyproject.toml 和 requirements.txt 的使用习惯,不需要手动激活虚拟环境就能自动识别项目上下文。
初始化新项目并创建隔离环境
进入空目录后直接运行 uv init,它会自动生成 pyproject.toml、README.md 和 hello.py,同时在当前目录下创建 .venv 虚拟环境——这一步省去了 uv venv + source .venv/bin/activate 的两步操作。
如果已有项目但没初始化过,cd 进入项目根目录后执行 uv init 即可补全标准结构,【注意:该命令不会覆盖已存在的 pyproject.toml】。
执行完后,后续所有 uv add、uv sync 等命令都会默认作用于这个 .venv 环境,无需手动激活。
安装依赖:三种常用方式
方法一:安装单个包并写入 pyproject.tomluv add requests —— 这是最推荐的日常用法,会自动解析依赖树、下载最新兼容版本、写入 [project.dependencies] 并更新 uv.lock。
方法二:从 requirements.txt 批量导入uv add -r requirements.txt —— 它不只是安装,还会把所有包逐条追加进 pyproject.toml,并生成精确锁定的 uv.lock,后续可用 uv sync 复现。
方法三:临时安装(不写入任何配置文件)uv pip install black —— 适用于只在当前环境临时调试工具,不会污染项目声明,适合 CI 或一次性脚本场景。
同步与还原确定性环境
第一步:确保项目已有 pyproject.toml 和 uv.lock(若无,先执行 uv add 或 uv sync 自动生成)
第二步:清空当前环境并完全按锁文件重建uv sync --clean
这一步会删除 .venv 中所有包,再根据 uv.lock 逐个安装——【这是团队协作或部署时保证环境 100% 一致的唯一可靠方式】,比 pip install -r requirements.txt 更精准,因为 uv.lock 记录了每个包的 exact hash 和平台约束。
第三步:验证是否还原成功uv tree 可查看当前环境完整的依赖树结构,带缩进和版本号,一眼识别是否有意外升级或遗漏。
卸载与更新依赖
卸载指定包:uv remove pytest —— 它会从 pyproject.toml 中删掉该行,并更新 uv.lock,同时从 .venv 中移除。
更新全部依赖到最新兼容版:uv update —— 自动重解析整个依赖图,升级所有满足约束的包,然后写回 pyproject.toml 和 uv.lock。
只更新某个包:uv update requests —— 不会影响其他包的版本,适合快速修复安全漏洞。
导出依赖清单供外部系统使用
导出为标准 requirements.txt 格式:uv export --format requirements-txt > requirements.txt
该命令读取 uv.lock 而非 pyproject.toml,所以导出的是真实安装的 exact 版本(含哈希),不是模糊的 requests>=2.28。适合部署到只认 requirements.txt 的 PaaS 平台。
如需跳过子依赖(仅导出顶层声明),加 --no-dev --no-sub-dependencies 参数。

















