uv用Rust编写,比pip快10-80倍,整合pip、virtualenv等工具链。安装后运行uvinit初始化项目,通过uvadd安装LangChain核心依赖,配置.env文件调用DeepSeek模型,成功运行首个聊天示例。该工具显著提升Python包管理效率。
在 Python 生态中,包管理一直是开发者面临的痛点,而 uv 的出现有效解决了这一问题。uv 由 Rust 编写,运行速度相比 pip 提升了 10 到 80 倍,性能优势非常明显。与 pip 仅解决单一功能不同,uv 借鉴了 Node.js 生态中 npm 或 pnpm 的理念,将 Python 常用的零散工具整合到一起,形成一站式解决方案。
uv 的核心亮点包括:
长期稳定更新的攒劲资源: >>>点此立即查看<<<
pyproject.toml 中,告别零散配置文件和混乱脚本日常操作只需一张速查表即可掌握:
| 功能 | 命令 |
|---|---|
| 创建虚拟环境 | uv venv |
| 使用虚拟环境运行脚本 | uv run main.py |
| 安装依赖 | uv pip install fastapi |
| 安装到项目(写入 pyproject) | uv add fastapi |
| 安装 Python 版本 | uv python install 3.12 |
| 运行工具 | uv run uvicorn app:app |
| 解析依赖锁定 | uv pip compile |
安装过程非常简便。uv 官网提供了统一的脚本调用方式。以 Windows 为例,打开终端,粘贴以下命令,等待几秒即可完成安装:
powershell -ExecutionPolicy ByPass -c "irm https://astral.sh/uv/install.ps1 | iex"
安装完成后,需要创建一个项目环境来学习 LangChain。以学习为例,新建一个名为 learn-langchain 的目录,在目录下的终端运行 uv init。
此时 uv 会快速初始化一个开发环境,生成如下初始文件。其中最关键的是 pyproject.toml,它相当于 Python 项目的“总配置中心 + 依赖声明入口”。
[project]
name = "learn-langchain"
version = "0.1.0"
description = "Add your description here"
readme = "README.md"
requires-python = ">=3.13"
dependencies = []
可以将其类比为前端项目中的 package.json。字段含义如下:
[project]:项目的元数据声明,uv 据此读取项目信息name:项目的官方名称version:项目版本号description:项目的一句话描述readme:指定项目的 README 文件requires-python:声明项目可运行的 Python 版本范围dependencies:项目的运行时依赖,后续所有的依赖安装都会写入此处接下来需要安装 LangChain 核心依赖。在项目根目录的终端输入以下命令:
uv add langchain langchain-core langchain-classic langchain-community
安装完成后,项目目录中会新增两个关键文件:
uv.lock:uv 自动生成的依赖锁文件,锁定每个依赖的具体版本,确保不同机器上依赖完全一致.venv:uv 为当前项目创建的 Python 虚拟环境目录,用于隔离依赖,避免污染全局 Python 环境Windows 与 macOS/Linux 的激活命令略有不同,根据您的系统选择对应的命令:
.venv\Scripts\activatesource .venv/bin/activate激活成功后,终端命令行前方会出现 (learn-langchain) 字样,表示当前处于该虚拟环境中。
基础环境搭建完成后,可以尝试第一个真正的 LangChain 项目。在项目根目录安装额外的依赖:
uv add python-dotenv langchain-openai langchain-deepseek
python-dotenv:用于读取 .env 文件,自动将敏感环境变量挂载到 Python 运行时,避免密钥硬编码langchain-openai:提供对 OpenAI 官方模型的接口封装langchain-deepseek:提供对 DeepSeek 平台(OpenAI 兼容)的接口封装在项目根目录创建 .env 文件,写入以下内容:
OPENAI_API_KEY=sk-c97afa925b1745f79225c904dff53cba
OPENAI_API_BASE=https://api.deepseek.com/v1
学习 LangChain 初期,可以先使用 DeepSeek 作为大语言模型,因为它完全兼容 OpenAI 的 API 协议。只需将 DeepSeek 开放平台申请的 API key 赋值给 OPENAI_API_KEY,并提供官方兼容的 base_url 赋值给 OPENAI_API_BASE 即可。
在项目根目录新建 01-hello-world 文件夹,在其中创建 01-chat.py 文件,代码如下:
from langchain_openai import ChatOpenAI
from dotenv import load_dotenv
# 加载环境变量
load_dotenv()
# 初始化聊天模型
llm = ChatOpenAI(
model="deepseek-chat",
temperature=0,
)
# 调用模型
response = llm.invoke("你是谁")
print(response.content)
此代码逻辑清晰,分为四个步骤:
导入依赖
from langchain_openai import ChatOpenAI —— 从 LangChain 的 OpenAI 适配器包导入 ChatOpenAI 类,本质是一个 LLM 客户端,用于与模型对话。
from dotenv import load_dotenv —— 从 python-dotenv 导入 load_dotenv,用于读取 .env 文件内容并注入环境变量。
加载环境变量
load_dotenv() —— 读取项目根目录下的 .env 文件,将 OPENAI_API_KEY 和 OPENAI_API_BASE 挂到系统环境变量中,ChatOpenAI 即可自动获取,无需显式传参。
初始化 LLM
llm = ChatOpenAI(model="deepseek-chat", temperature=0)
创建 ChatOpenAI 实例,model 参数指定模型名称(DeepSeek 兼容 OpenAI API,此处使用 deepseek-chat)。temperature=0 表示输出确定性最强,数值越高输出越多样。
调用 LLM
response = llm.invoke("你是谁") 是核心调用。输入 prompt 后,返回响应对象,response.content 为模型返回的文本内容。
所有内容准备就绪后,在终端输入 python 01-hello-world/01-chat.py,等待几秒即可看到控制台输出模型的回答。这意味着第一个 LangChain 示例已成功运行。接下来,我们将系统性地介绍 LangChain 更强大的功能——这只是一个开始。
侠游戏发布此文仅为了传递信息,不代表侠游戏网站认同其观点或证实其描述