J'Blog

6 课 · 入门

语义检索

基于 Chroma 向量库,与 Workspace 知识库分离。用自然语言描述你想查的内容。 非管理员每人每天可检索 5 次(消耗站点 AI 配额)。

虚拟环境管理

原文:虚拟环境 venv

一句话

创建和管理独立的Python环境,隔离项目依赖。

什么时候翻这页

  1. 需要为AI Agent项目创建隔离的依赖环境
  2. Agent工具调用需要特定版本的库
  3. 需要管理多个Agent项目各自的依赖
  4. 在开发LangChain/LangGraph应用时隔离不同环境的依赖

核心概念

  1. 虚拟环境:轻量级的Python环境,拥有独立的包集合
  2. 隔离性:虚拟环境之间以及与系统Python环境相互隔离
  3. 可移植性:虚拟环境通常不可移动,只能在目标位置重建
  4. 激活:将虚拟环境的Python解释器和脚本添加到PATH中
  5. pyvenv.cfg:虚拟环境的配置文件,记录基础Python等信息

怎么做

  1. 创建虚拟环境:

    python -m venv /path/to/new/virtual/environment
    
  2. 激活虚拟环境:

    • 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
  3. 停用虚拟环境:

    deactivate
    
  4. 使用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 开发的联系

  1. Agent依赖隔离:为每个AI Agent项目创建独立的虚拟环境,避免不同Agent之间的依赖冲突
  2. 工具调用环境:确保Agent调用的工具在正确的环境中运行,避免版本问题
  3. 结构化输出环境:为Agent提供稳定的依赖环境,确保输出格式的一致性

初学者易错点

  1. 虚拟环境不可移动:不应尝试移动虚拟环境目录,而应在目标位置重建
  2. 忘记激活环境:直接在系统Python中安装依赖,而非在激活的虚拟环境中
  3. 将项目代码放入虚拟环境:虚拟环境应只包含依赖,项目代码应放在外部
  4. 忽略VIRTUAL_ENV环境变量:虽然不激活也能使用虚拟环境,但VIRTUAL_ENV可能不可靠

相关词条

  • library-site Python站点包管理
  • library-pip Python包安装工具
  • library-ensurepip pip初始设置
  • library-subprocess 子进程管理
  • library-os 操作系统接口
  • library-pathlib 面向对象的路径操作

官方原文:https://docs.python.org/zh-cn/3/library/venv.html