虚拟环境管理
原文:虚拟环境 venv
一句话
创建和管理独立的Python环境,隔离项目依赖。
什么时候翻这页
- 需要为AI Agent项目创建隔离的依赖环境
- Agent工具调用需要特定版本的库
- 需要管理多个Agent项目各自的依赖
- 在开发LangChain/LangGraph应用时隔离不同环境的依赖
核心概念
- 虚拟环境:轻量级的Python环境,拥有独立的包集合
- 隔离性:虚拟环境之间以及与系统Python环境相互隔离
- 可移植性:虚拟环境通常不可移动,只能在目标位置重建
- 激活:将虚拟环境的Python解释器和脚本添加到PATH中
pyvenv.cfg:虚拟环境的配置文件,记录基础Python等信息
怎么做
-
创建虚拟环境:
python -m venv /path/to/new/virtual/environment -
激活虚拟环境:
- POSIX (bash/zsh):
$ source /bin/activate - fish:
$ source /bin/activate.fish - csh/tcsh:
$ source /bin/activate.csh - pwsh:
$ /bin/Activate.ps1 - Windows cmd:
C:\> \Scripts\activate.bat - PowerShell:
PS C:\> \Scripts\Activate.ps1
- POSIX (bash/zsh):
-
停用虚拟环境:
deactivate -
使用
EnvBuilder创建自定义虚拟环境:import venv builder = venv.EnvBuilder(system_site_packages=False, clear=False, symlinks=True) builder.create('/path/to/venv')
命令 / API 速查
| 命令/API | 描述 |
|---|---|
python -m venv ENV_DIR | 创建虚拟环境 |
--system-site-packages | 允许访问系统site-packages |
--clear | 清理已存在的环境目录 |
--symlinks | 使用符号链接而非复制 |
--without-pip | 不安装pip |
EnvBuilder | 虚拟环境构建器基类 |
create(env_dir) | 创建虚拟环境的方法 |
post_setup(context) | 环境创建后的钩子方法 |
与 Agent 开发的联系
- Agent依赖隔离:为每个AI Agent项目创建独立的虚拟环境,避免不同Agent之间的依赖冲突
- 工具调用环境:确保Agent调用的工具在正确的环境中运行,避免版本问题
- 结构化输出环境:为Agent提供稳定的依赖环境,确保输出格式的一致性
初学者易错点
- 虚拟环境不可移动:不应尝试移动虚拟环境目录,而应在目标位置重建
- 忘记激活环境:直接在系统Python中安装依赖,而非在激活的虚拟环境中
- 将项目代码放入虚拟环境:虚拟环境应只包含依赖,项目代码应放在外部
- 忽略
VIRTUAL_ENV环境变量:虽然不激活也能使用虚拟环境,但VIRTUAL_ENV可能不可靠
相关词条
library-sitePython站点包管理library-pipPython包安装工具library-ensurepippip初始设置library-subprocess子进程管理library-os操作系统接口library-pathlib面向对象的路径操作