Python环境搭建与依赖管理(Poetry/Anaconda)
6.1 Python环境概述
6.1.1 为什么需要Python环境?
Python是智能体开发的主要语言之一,特别是在AI和机器学习领域。搭建一个良好的Python环境对于智能体开发至关重要,因为:
- 依赖管理:智能体开发需要使用多种库和框架
- 版本控制:不同项目可能需要不同版本的Python和库
- 隔离性:避免不同项目之间的依赖冲突
- 可重现性:确保项目在不同环境中能够一致运行
6.1.2 Python环境的选择
常见的Python环境管理工具包括:
- 系统Python:直接安装在操作系统上的Python
- 虚拟环境:使用
venv或virtualenv创建的隔离环境 - Anaconda:完整的Python发行版,包含科学计算库
- Poetry:现代化的Python依赖管理工具
- Pyenv:用于管理多个Python版本
6.2 系统Python安装
6.2.1 Windows系统安装Python
- 下载安装包:访问Python官方网站下载最新版本的Python安装包
- 运行安装程序:
- 勾选"Add Python to PATH"
- 选择"Customize installation"
- 确保所有可选功能都被选中
- 选择安装路径(建议使用默认路径)
- 验证安装:打开命令提示符,运行
python --version验证安装是否成功
6.2.2 macOS系统安装Python
- 使用Homebrew安装:
brew install python - 验证安装:运行
python3 --version验证安装是否成功 - 设置别名(可选):在
.bashrc或.zshrc中添加alias python=python3
6.2.3 Linux系统安装Python
- 使用包管理器安装:
- Ubuntu/Debian:
sudo apt install python3 python3-pip - CentOS/RHEL:
sudo yum install python3 python3-pip - Fedora:
sudo dnf install python3 python3-pip
- Ubuntu/Debian:
- 验证安装:运行
python3 --version验证安装是否成功
6.3 使用Poetry进行依赖管理
6.3.1 Poetry简介
Poetry是一个现代化的Python依赖管理工具,它将包管理和虚拟环境管理集成在一起,提供了简洁的命令行界面。
6.3.2 安装Poetry
Windows系统:
(Invoke-WebRequest -Uri https://install.python-poetry.org -UseBasicParsing).Content | python -macOS/Linux系统:
curl -sSL https://install.python-poetry.org | python3 -验证安装:运行
poetry --version验证安装是否成功添加到PATH(如果需要):
- Windows:将
%APPDATA%\Python\Scripts添加到系统PATH - macOS/Linux:将
$HOME/.local/bin添加到系统PATH
- Windows:将
6.3.3 使用Poetry创建项目
创建新项目:
poetry new ai-agent-project cd ai-agent-project查看项目结构:
ai-agent-project/ ├── pyproject.toml # 项目配置文件 ├── README.md # 项目说明文件 ├── ai_agent_project/ # 主包目录 └── tests/ # 测试目录配置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 管理依赖
安装依赖:
poetry install添加新依赖:
poetry add package-name添加开发依赖:
poetry add --group dev package-name更新依赖:
poetry update移除依赖:
poetry remove package-name
6.3.5 运行项目
使用poetry run运行命令:
poetry run python script.py激活虚拟环境:
poetry shell退出虚拟环境:
exit
6.4 使用Anaconda进行环境管理
6.4.1 Anaconda简介
Anaconda是一个完整的Python发行版,包含了科学计算和数据分析所需的大部分库。它使用Conda作为包管理和环境管理工具。
6.4.2 安装Anaconda
- 下载安装包:访问Anaconda官方网站下载适合自己系统的安装包
- 运行安装程序:
- 按照提示进行安装
- 选择安装路径(建议使用默认路径)
- 勾选"Add Anaconda to my PATH environment variable"
- 验证安装:打开命令提示符,运行
conda --version验证安装是否成功
6.4.3 使用Conda创建环境
创建新环境:
conda create -n ai-agent-env python=3.10激活环境:
- Windows:
conda activate ai-agent-env - macOS/Linux:
source activate ai-agent-env
- Windows:
查看环境:
conda env list删除环境:
conda env remove -n ai-agent-env
6.4.4 管理依赖
安装包:
conda install package-name从PyPI安装:
pip install package-name查看已安装的包:
conda list更新包:
conda update package-name导出环境:
conda env export > environment.yml从文件创建环境:
conda env create -f environment.yml
6.5 项目依赖配置最佳实践
6.5.1 依赖版本管理
- 固定版本:对于生产环境,固定依赖的具体版本
- 版本范围:对于开发环境,可以使用版本范围
- 避免冲突:定期检查依赖冲突
- 安全更新:及时更新有安全漏洞的依赖
6.5.2 requirements.txt文件
即使使用Poetry或Conda,也建议创建requirements.txt文件,方便其他开发者使用:
从Poetry生成:
poetry export --without-hashes -o requirements.txt从Conda生成:
pip freeze > requirements.txt安装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
- mypy6.8 环境问题排查
6.8.1 常见环境问题
- 依赖冲突:不同包需要不同版本的依赖
- 版本不兼容:Python版本与包版本不兼容
- 路径问题:Python解释器路径配置错误
- 权限问题:安装包时权限不足
- 网络问题:无法下载包或依赖
6.8.2 问题排查方法
检查Python版本:
python --version检查依赖版本:
pip list # 或 conda list检查环境变量:
echo $PATH # Linux/macOS echo %PATH% # Windows重新创建环境:
- Poetry:删除
poetry.lock和.venv目录,重新运行poetry install - Conda:删除环境并重新创建
- Poetry:删除
使用虚拟环境隔离:确保每个项目使用独立的虚拟环境
6.9 实用案例:搭建智能体开发环境
6.9.1 案例目标
搭建一个完整的智能体开发环境,包含所有必要的依赖。
6.9.2 实现步骤
安装Poetry:
curl -sSL https://install.python-poetry.org | python3 -创建项目:
poetry new ai-agent-dev cd ai-agent-dev配置依赖:
[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"安装依赖:
poetry install验证安装:
poetry run python -c "import langchain; import openai; print('环境搭建成功!')"创建示例脚本:
# 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)运行示例:
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等智能体调试工具
- 开始实际的智能体开发实践