如何部署使用uv管理依赖的python项目 ?

uv 当我从pip 包管理转向uv,就好像从一辆"五菱宏光"转向小米SU7. uv

核心前提:先了解 uv 的依赖管理逻辑

  • uv是基于 PEP 621 标准的现代包管理器,核心依赖文件是:
  • pyproject.toml:定义项目依赖、版本、入口等(替代传统的requirements.txt);
  • uv.lock:依赖锁文件(记录精确的依赖版本,确保部署环境和开发环境完全一致,类似package-lock.json)。
  • 部署的核心是:通过 uv 还原uv.lock中的依赖,而非手动安装,这是保证环境一致性的关键。

(1)创建虚拟环境

bash 复制代码
# 1. 创建虚拟环境(默认生成.venv文件夹)
uv venv

# 2. 激活虚拟环境(关键!必须激活后再装依赖)
.venv\Scripts\activate

(2)还原项目依赖

当我想要运行一个uv管理的python项目时,首先确保项目存在pyproject.toml, uv.lock. 这些是项目的依赖,包含精确的信息。我们可以直接使用以下命令:

bash 复制代码
# 生产环境:还原依赖(自动读取pyproject.toml和uv.lock)
uv pip install .

# 解释:
# .:表示安装当前项目的依赖(读取pyproject.toml)
# 若首次初始化(无uv.lock),直接生成锁文件+安装依赖
# uv install

(3)运行项目

bash 复制代码
uv run -m api.main

这个仅是作为示例,读者可以根据自己项目的启动命令进行调整。

(4)uv其它命令

  • pyproject.toml,这是 uv 管理项目依赖的核心设计;
  • 锁文件独立:uv.lock 记录精确版本,pyproject.toml 记录版本约束,二者分工明确,uv 会自动维护一致性。

uv add uv install两者之间的区别:是否修改pyproject.toml,

uv install 临时安装依赖(仅装到虚拟环境) ❌ 不修改

  1. 临时测试某个包;
  2. 部署时还原已定义的依赖

关键区分

  • uv install 是 "临时安装"(不写配置)
  • uv add 是 "纳入项目依赖"(写配置)

(5)一致性校验

  • uv sync --dry-run

Would uninstall 58 packages:这是 uv 的 "一致性校验" 行为 ------ 它只认 pyproject.toml + uv.lock 中记录的依赖,虚拟环境中额外安装的包会被判定为 "多余"。幸运的是 --dry-run 只是模拟操作,并没有真的卸载,给了你补救的机会。

相关推荐
秋92 分钟前
Go语言(Golang)开发工程师全景解析:岗位职责·语言优势与使用场景·各城市薪资·发展前景·高考志愿填报(2026版)
开发语言·golang·高考
无风听海21 分钟前
多租户系统中的 OIDC:Discovery 端点与联合登录的深度实践
后端·python·flask
CTA终结者1 小时前
期货量化主力换月程序怎么移仓:天勤 underlying_symbol 与任务切换
python·区块链
huangdong_1 小时前
1688商品图片采集技术解析:登录态处理与SKU图自动分类
开发语言
马士兵教育1 小时前
Java还有前景吗?Java+AI大模型学习路线及项目?
java·人工智能·python·学习·机器学习
chase_my_dream1 小时前
C++ + SLAM 高频面试问题整理
开发语言·c++·面试
KaMeidebaby1 小时前
卡梅德生物技术快报|纯化重组蛋白实操详解
人工智能·python·tcp/ip·算法·机器学习
Cloud_Shy6181 小时前
解读《Effective Python 3rd Edition》:从练气到老魔(第五章 Item 30 - 32)
开发语言·人工智能·笔记·python·学习方法
天佑木枫2 小时前
15天Python入门系列 · 序
开发语言·python
happylifetree2 小时前
Python017-第二章15.数据容器-dict常用操作
python