使用 uv 一键创建并激活 Python 虚拟环境(附完整脚本)
在 Python 项目开发中,虚拟环境几乎是必备基础设施。它可以有效避免依赖冲突、全局环境污染,以及“在我电脑上能跑”的问题。
本文将介绍一个 基于 uv 的自动化脚本 activate_env.sh,通过一次执行完成:
- 自动安装
uv - 自动创建 Python 虚拟环境
- 自动激活虚拟环境
- 自动安装项目依赖
- 输出当前环境信息,便于排查问题
适用于 个人项目、团队协作以及 CI/CD 场景。
一、为什么选择 uv?
uv 是 Astral 推出的新一代 Python 包管理工具,采用 Rust 编写,相比传统工具具备明显优势:
| 工具 | 特点 |
|---|---|
| pip | 兼容性好,但速度慢 |
| pipenv | 功能重,性能一般 |
| poetry | 功能全面,但学习成本较高 |
| uv | ⚡ 极快、兼容 pip、使用简单 |
选择 uv 的原因:
- 🚀 依赖解析和安装速度极快
- 🔄 完全兼容
requirements.txt - 🧱 原生支持虚拟环境管理
- 🧰 适合逐步替换 pip,不破坏现有项目结构
二、脚本设计目标
activate_env.sh 的核心目标只有一个:
执行一次脚本,立刻进入可开发状态。
脚本解决了以下问题:
- 本地是否已安装
uv - 项目是否已创建虚拟环境
- 依赖是否完整安装
- 如何快速确认当前环境状态
三、完整脚本:activate_env.sh
📌 建议将以下脚本直接保存为
activate_env.sh,并加入项目仓库
#!/bin/bash
# 使用 uv 安装并激活 Python 虚拟环境
set -e # 遇到错误立即退出
echo "================================"
echo "🐍 Python虚拟环境管理"
echo "================================"
# 检查 uv 是否已安装
if ! command -v uv &> /dev/null; then
echo "❌ uv 未安装"
echo "📥 正在安装 uv..."
curl -LsSf https://astral.sh/uv/install.sh | sh
# 重新加载环境变量
export PATH="$HOME/.cargo/bin:$PATH"
# 再次检查
if ! command -v uv &> /dev/null; then
echo "❌ uv 安装失败,请手动安装:"
echo " curl -LsSf https://astral.sh/uv/install.sh | sh"
exit 1
fi
echo "✅ uv 安装成功"
fi
# 检查虚拟环境是否存在
if [ ! -d ".venv" ]; then
echo ""
echo "📦 虚拟环境不存在,正在创建..."
uv venv
echo "✅ 虚拟环境创建成功"
else
echo "✅ 虚拟环境已存在"
fi
# 激活虚拟环境并安装依赖
echo ""
echo "📥 检查并安装依赖..."
# 先激活虚拟环境
source .venv/bin/activate
# 安装依赖
if [ -f "requirements.txt" ]; then
uv pip install -r requirements.txt
echo "✅ 依赖安装完成"
else
echo "⚠️ 未找到 requirements.txt"
fi
echo ""
echo "================================"
echo "✅ 虚拟环境已激活!"
echo "================================"
echo ""
echo "当前环境信息:"
echo " Python: $(python --version)"
echo " 位置: $VIRTUAL_ENV"
echo ""
echo "已安装的包:"
uv pip list
echo ""
echo "================================"
echo "💡 下一步:"
echo "================================"
echo ""
echo "1️⃣ 激活虚拟环境:"
echo " source .venv/bin/activate"
四、脚本执行流程说明
1️⃣ 安全退出机制
set -e
确保脚本在任意步骤失败时立即终止,避免生成不完整或不可用的环境。
2️⃣ 自动安装 uv
脚本会自动检测 uv 是否存在,若未安装则直接下载并安装,无需人工干预,适合全新环境。
3️⃣ 虚拟环境统一管理
- 虚拟环境统一放在
.venv目录 - 若已存在不会重复创建
- 支持多次安全执行
4️⃣ 依赖自动安装
- 默认读取
requirements.txt - 使用
uv pip install,速度远快于 pip - 完全兼容现有依赖管理方式
5️⃣ 环境信息输出
脚本结束时会输出:
- Python 版本
- 虚拟环境路径
- 已安装依赖列表
方便快速验证环境是否正确。
五、推荐使用方式
首次使用(项目初始化)
chmod +x activate_env.sh
./activate_env.sh
后续进入项目
source .venv/bin/activate
六、适用场景总结
✅ 新项目快速启动
✅ 团队成员环境统一
✅ 新同事零成本上手
✅ CI / 自动化环境初始化
七、可扩展方向(进阶)
你可以在此脚本基础上继续增强:
- Python 版本校验(
.python-version) - 区分开发 / 生产依赖
- 日志输出与调试模式
- 公司级 Python 项目模板
- 与 Docker / CI/CD 集成
结语
一个好的环境初始化脚本,不是为了炫技,而是为了让所有人把时间花在真正重要的事情上。
activate_env.sh + uv 是一个简单、稳定、工程化的组合,非常适合作为 Python 项目的默认起手式。