使用 uv 一键创建并激活 Python 虚拟环境(附完整脚本)

简介: 本文介绍基于 `uv` 的自动化脚本 `activate_env.sh`,一键完成安装 uv、创建并激活虚拟环境、安装依赖及环境信息输出,提升 Python 项目初始化效率,适用于个人开发、团队协作与 CI/CD 场景。

使用 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 的核心目标只有一个:

执行一次脚本,立刻进入可开发状态。

脚本解决了以下问题:

  1. 本地是否已安装 uv
  2. 项目是否已创建虚拟环境
  3. 依赖是否完整安装
  4. 如何快速确认当前环境状态

三、完整脚本: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 项目的默认起手式。

相关文章
|
数据采集 JSON 算法
Python爬虫——模拟登录
Python爬虫——模拟登录
885 3
|
3月前
|
缓存 Linux 开发者
Windows 下手动下载安装配置 uv
UV 是专为 Windows 打造的轻量命令行包管理器,仅需 uv.exe 和 uvx.exe 两个文件,无需 WSL 或管理员权限。支持一键安装、卸载、多版本切换 Python 等工具,内置依赖解析与缓存管理,搭配国内镜像更高效。绿色无残留,开发者友好,真正实现 Linux 般丝滑体验。
2613 2
|
15天前
|
JSON 人工智能 API
从对话到Agent:大模型工具调用能力的量化评测
大模型向Agent进化,工具调用是关键。本文介绍EvalScope评测框架,通过双重验证机制,量化评估模型“会不会用、能不能用好”工具,助力开发者打造可靠AI应用。
192 4
|
23天前
|
存储 自然语言处理 数据库
RAG(检索增强生成)技术简介
RAG(检索增强生成)通过结合信息检索与文本生成,提升大模型回答的准确性与时效性。它利用向量数据库实现语义检索,支持智能客服、医疗诊断、法律咨询等场景,解决知识更新难、专业性不足等问题,并以“按需取用”机制突破上下文限制,兼顾效率与隐私。
288 4
|
29天前
|
Ubuntu Linux 开发者
Ubuntu 24.04 安装 Docker 与 Compose:完整稳定版教程(小白必看)
本教程详细介绍在Ubuntu 24.04上安装Docker与Docker Compose的完整步骤,适合新手操作。涵盖环境准备、软件安装、验证及常见问题解决,助你快速掌握容器化部署技能,提升开发效率。
|
27天前
|
缓存 Rust 算法
使用 uv 的优点分析:为什么它正在取代 pip
uv 以 Rust 打造,速度比 pip 快 10–100 倍,依赖解析毫秒级完成。命令完全兼容,零学习成本迁移。虚拟环境创建更快、更小、更智能,适合日常开发、CI 自动化等场景,显著提升 Python 开发效率。
|
27天前
|
人工智能 搜索推荐 架构师
NotebookLM:不是搜索引擎,而是“基于你资料的 AI 大脑”
NotebookLM是Google推出的AI助手,不依赖网络搜索,而是基于你上传的文档(如PDF、笔记、论文等)进行理解、总结与问答。它像一位“会思考的研究助理”,支持多文档交叉分析、自动摘要、观点溯源,确保回答可信可查,特别适合研究人员、产品经理、工程师等深度处理专业资料的用户。
|
3月前
|
机器学习/深度学习 人工智能 前端开发
终端里的 AI 编程助手:OpenCode 使用指南
OpenCode 是开源的终端 AI 编码助手,支持 Claude、GPT-4 等模型,可在命令行完成代码编写、Bug 修复、项目重构。提供原生终端界面和上下文感知能力,适合全栈开发者和终端用户使用。
27157 10
|
人工智能 Rust 开发者
【MCP教程系列】使用Python在阿里云百炼创建基于UVX的MCP服务完整指南
本文介绍如何使用基于uvx工具链的Python项目,结合阿里云百炼平台实现小红书文案审核助手的MCP服务开发与部署。首先通过安装uv工具初始化项目并配置虚拟环境,编写server.py文件调用qwen-plus模型完成内容审核功能。随后将项目打包上传至PyPI,供全球开发者访问。接着在阿里云百炼平台上配置并部署该MCP服务,解决可能的依赖问题。最后,在智能体应用中引入此MCP服务进行测试验证,确保其正常运行。
3538 0