Python环境搭建与依赖管理(Poetry/Anaconda)

6.1 Python环境概述

6.1.1 为什么需要Python环境?

Python是智能体开发的主要语言之一,特别是在AI和机器学习领域。搭建一个良好的Python环境对于智能体开发至关重要,因为:

  • 依赖管理:智能体开发需要使用多种库和框架
  • 版本控制:不同项目可能需要不同版本的Python和库
  • 隔离性:避免不同项目之间的依赖冲突
  • 可重现性:确保项目在不同环境中能够一致运行

6.1.2 Python环境的选择

常见的Python环境管理工具包括:

  • 系统Python:直接安装在操作系统上的Python
  • 虚拟环境:使用venvvirtualenv创建的隔离环境
  • Anaconda:完整的Python发行版,包含科学计算库
  • Poetry:现代化的Python依赖管理工具
  • Pyenv:用于管理多个Python版本

6.2 系统Python安装

6.2.1 Windows系统安装Python

  1. 下载安装包:访问Python官方网站下载最新版本的Python安装包
  2. 运行安装程序
    • 勾选"Add Python to PATH"
    • 选择"Customize installation"
    • 确保所有可选功能都被选中
    • 选择安装路径(建议使用默认路径)
  3. 验证安装:打开命令提示符,运行python --version验证安装是否成功

6.2.2 macOS系统安装Python

  1. 使用Homebrew安装
    brew install python
  2. 验证安装:运行python3 --version验证安装是否成功
  3. 设置别名(可选):在.bashrc.zshrc中添加alias python=python3

6.2.3 Linux系统安装Python

  1. 使用包管理器安装
    • Ubuntu/Debian:sudo apt install python3 python3-pip
    • CentOS/RHEL:sudo yum install python3 python3-pip
    • Fedora:sudo dnf install python3 python3-pip
  2. 验证安装:运行python3 --version验证安装是否成功

6.3 使用Poetry进行依赖管理

6.3.1 Poetry简介

Poetry是一个现代化的Python依赖管理工具,它将包管理和虚拟环境管理集成在一起,提供了简洁的命令行界面。

6.3.2 安装Poetry

  1. Windows系统

    (Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -
  2. macOS/Linux系统

    curl -sSL https://install.python-poetry.org | python3 -
  3. 验证安装:运行poetry --version验证安装是否成功

  4. 添加到PATH(如果需要):

    • Windows:将%APPDATA%\Python\Scripts添加到系统PATH
    • macOS/Linux:将$HOME/.local/bin添加到系统PATH

6.3.3 使用Poetry创建项目

  1. 创建新项目

    poetry new ai-agent-project
    cd ai-agent-project
  2. 查看项目结构

    ai-agent-project/
    ├── pyproject.toml      # 项目配置文件
    ├── README.md            # 项目说明文件
    ├── ai_agent_project/    # 主包目录
    └── tests/               # 测试目录
  3. 配置pyproject.toml

    [tool.poetry]
    name = "ai-agent-project"
    version = "0.1.0"
    description = "AI智能体项目"
    authors = ["Your Name <your.email@example.com>"]
    readme = "README.md"
    packages = [{ include = "ai_agent_project" }]
    
    [tool.poetry.dependencies]
    python = "^3.10"
    langchain = "^0.1.0"
    openai = "^1.0.0"
    python-dotenv = "^1.0.0"
    
    [tool.poetry.group.dev.dependencies]
    pytest = "^7.0.0"
    black = "^23.0.0"
    isort = "^5.0.0"
    
    [build-system]
    requires = ["poetry-core"]
    build-backend = "poetry.core.masonry.api"

6.3.4 管理依赖

  1. 安装依赖

    poetry install
  2. 添加新依赖

    poetry add package-name
  3. 添加开发依赖

    poetry add --group dev package-name
  4. 更新依赖

    poetry update
  5. 移除依赖

    poetry remove package-name

6.3.5 运行项目

  1. 使用poetry run运行命令

    poetry run python script.py
  2. 激活虚拟环境

    poetry shell
  3. 退出虚拟环境

    exit

6.4 使用Anaconda进行环境管理

6.4.1 Anaconda简介

Anaconda是一个完整的Python发行版,包含了科学计算和数据分析所需的大部分库。它使用Conda作为包管理和环境管理工具。

6.4.2 安装Anaconda

  1. 下载安装包:访问Anaconda官方网站下载适合自己系统的安装包
  2. 运行安装程序
    • 按照提示进行安装
    • 选择安装路径(建议使用默认路径)
    • 勾选"Add Anaconda to my PATH environment variable"
  3. 验证安装:打开命令提示符,运行conda --version验证安装是否成功

6.4.3 使用Conda创建环境

  1. 创建新环境

    conda create -n ai-agent-env python=3.10
  2. 激活环境

    • Windows:conda activate ai-agent-env
    • macOS/Linux:source activate ai-agent-env
  3. 查看环境

    conda env list
  4. 删除环境

    conda env remove -n ai-agent-env

6.4.4 管理依赖

  1. 安装包

    conda install package-name
  2. 从PyPI安装

    pip install package-name
  3. 查看已安装的包

    conda list
  4. 更新包

    conda update package-name
  5. 导出环境

    conda env export > environment.yml
  6. 从文件创建环境

    conda env create -f environment.yml

6.5 项目依赖配置最佳实践

6.5.1 依赖版本管理

  • 固定版本:对于生产环境,固定依赖的具体版本
  • 版本范围:对于开发环境,可以使用版本范围
  • 避免冲突:定期检查依赖冲突
  • 安全更新:及时更新有安全漏洞的依赖

6.5.2 requirements.txt文件

即使使用Poetry或Conda,也建议创建requirements.txt文件,方便其他开发者使用:

  1. 从Poetry生成

    poetry export --without-hashes -o requirements.txt
  2. 从Conda生成

    pip freeze > requirements.txt
  3. 安装from requirements.txt

    pip install -r requirements.txt

6.5.3 依赖分组

合理分组依赖可以提高项目的可维护性:

  • 核心依赖:项目运行必需的依赖
  • 开发依赖:仅在开发时需要的依赖
  • 测试依赖:仅在测试时需要的依赖
  • 可选依赖:可选功能需要的依赖

6.6 智能体开发的常用依赖

6.6.1 核心依赖

  • langchain:智能体开发框架
  • openai:OpenAI API客户端
  • python-dotenv:环境变量管理
  • pydantic:数据验证
  • requests:HTTP客户端

6.6.2 记忆与存储

  • faiss-cpu:向量相似度搜索
  • chromadb:轻量级向量数据库
  • redis:用于缓存和会话管理
  • sqlite3:轻量级本地数据库

6.6.3 工具集成

  • beautifulsoup4:HTML解析
  • selenium:网页自动化
  • webdriver-manager:浏览器驱动管理
  • pyyaml:YAML文件处理

6.6.4 开发工具

  • pytest:测试框架
  • black:代码格式化
  • isort:导入排序
  • flake8:代码检查
  • mypy:类型检查

6.7 环境配置示例

6.7.1 Poetry项目配置示例

pyproject.toml

[tool.poetry]
name = "ai-agent-project"
version = "0.1.0"
description = "AI智能体开发项目"
authors = ["Your Name <your.email@example.com>"]
readme = "README.md"
packages = [{ include = "ai_agent" }]

[tool.poetry.dependencies]
python = "^3.10"
langchain = "^0.1.0"
openai = "^1.0.0"
python-dotenv = "^1.0.0"
pydantic = "^2.0.0"
requests = "^2.31.0"
faiss-cpu = "^1.7.4"
chromadb = "^0.4.0"
redis = "^5.0.0"

[tool.poetry.group.dev.dependencies]
pytest = "^7.0.0"
black = "^23.0.0"
isort = "^5.0.0"
flake8 = "^6.0.0"
mypy = "^1.0.0"

[build-system]
requires = ["poetry-core"]
build-backend = "poetry.core.masonry.api"

6.7.2 Conda环境配置示例

environment.yml

name: ai-agent-env
channels:
  - defaults
  - conda-forge
dependencies:
  - python=3.10
  - pip
  - pip:
    - langchain
    - openai
    - python-dotenv
    - pydantic
    - requests
    - faiss-cpu
    - chromadb
    - redis
    - pytest
    - black
    - isort
    - flake8
    - mypy

6.8 环境问题排查

6.8.1 常见环境问题

  • 依赖冲突:不同包需要不同版本的依赖
  • 版本不兼容:Python版本与包版本不兼容
  • 路径问题:Python解释器路径配置错误
  • 权限问题:安装包时权限不足
  • 网络问题:无法下载包或依赖

6.8.2 问题排查方法

  1. 检查Python版本

    python --version
  2. 检查依赖版本

    pip list
    # 或
    conda list
  3. 检查环境变量

    echo $PATH  # Linux/macOS
    echo %PATH%  # Windows
  4. 重新创建环境

    • Poetry:删除poetry.lock.venv目录,重新运行poetry install
    • Conda:删除环境并重新创建
  5. 使用虚拟环境隔离:确保每个项目使用独立的虚拟环境

6.9 实用案例:搭建智能体开发环境

6.9.1 案例目标

搭建一个完整的智能体开发环境,包含所有必要的依赖。

6.9.2 实现步骤

  1. 安装Poetry

    curl -sSL https://install.python-poetry.org | python3 -
  2. 创建项目

    poetry new ai-agent-dev
    cd ai-agent-dev
  3. 配置依赖

    [tool.poetry]
    name = "ai-agent-dev"
    version = "0.1.0"
    description = "AI智能体开发环境"
    authors = ["Your Name <your.email@example.com>"]
    readme = "README.md"
    packages = [{ include = "ai_agent_dev" }]
    
    [tool.poetry.dependencies]
    python = "^3.10"
    langchain = "^0.1.0"
    openai = "^1.0.0"
    python-dotenv = "^1.0.0"
    pydantic = "^2.0.0"
    faiss-cpu = "^1.7.4"
    chromadb = "^0.4.0"
    
    [tool.poetry.group.dev.dependencies]
    pytest = "^7.0.0"
    black = "^23.0.0"
    isort = "^5.0.0"
    
    [build-system]
    requires = ["poetry-core"]
    build-backend = "poetry.core.masonry.api"
  4. 安装依赖

    poetry install
  5. 验证安装

    poetry run python -c "import langchain; import openai; print('环境搭建成功!')"
  6. 创建示例脚本

    # example_agent.py
    from langchain.chat_models import ChatOpenAI
    from langchain.prompts import ChatPromptTemplate
    
    # 初始化模型
    llm = ChatOpenAI(model="gpt-3.5-turbo", temperature=0.7)
    
    # 创建提示模板
    prompt = ChatPromptTemplate.from_template(
        "你是一个友好的AI助手,回答用户的问题:{question}"
    )
    
    # 生成响应
    response = llm(prompt.format_messages(question="什么是AI智能体?"))
    print(response.content)
  7. 运行示例

    poetry run python example_agent.py

6.9.3 案例分析

  • 环境搭建:使用Poetry创建了一个隔离的虚拟环境
  • 依赖管理:配置了智能体开发所需的核心依赖
  • 验证测试:通过示例脚本验证环境是否正常工作
  • 可扩展性:可以根据需要添加更多依赖

6.10 小结与展望

6.10.1 本集要点回顾

  • 介绍了Python环境搭建的重要性和常见工具
  • 详细讲解了Poetry和Anaconda的安装和使用
  • 提供了智能体开发的常用依赖配置
  • 分享了环境问题排查的方法和技巧
  • 实践了完整的智能体开发环境搭建

6.10.2 后续学习方向

  • 学习如何获取和配置大模型API密钥
  • 掌握Jupyter Notebook和VS Code的高效开发配置
  • 学习使用Git进行版本控制
  • 了解LangSmith和LangFuse等智能体调试工具
  • 开始实际的智能体开发实践
« 上一篇 智能体应用场景展望:从个人助理到企业自动化 下一篇 » 大模型API密钥获取与配置(OpenAI、智谱、千问等)