MacBook上从零搭建LangChain开发环境Python3、Pip、ChromaDB一步到位含Homebrew提速技巧刚拿到MacBook准备开发AI应用面对Python环境配置、包管理工具安装、向量数据库部署这些基础环节很多新手开发者容易在第一步就踩坑。本文将带你用最优雅的方式完成LangChain开发环境搭建特别针对Homebrew安装慢、Pip超时等典型问题提供实战解决方案。1. 开发环境准备避开Homebrew的坑Mac开发者绕不开Homebrew这个包管理神器但默认安装方式可能会让你在Updating Homebrew...界面卡上半小时。我们先解决这个痛点。国内用户推荐使用中科大镜像源加速在终端执行以下命令/bin/bash -c $(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)安装完成后在.zshrc或.bash_profile中添加以下环境变量根据你使用的shell选择export HOMEBREW_BREW_GIT_REMOTEhttps://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTEhttps://mirrors.ustc.edu.cn/homebrew-core.git然后执行source ~/.zshrc使配置生效。这样后续所有brew操作都会走国内镜像速度提升10倍不止。注意如果已经安装过Homebrew可以通过git -C $(brew --repo) remote set-url origin命令修改仓库地址。安装Python3的正确姿势brew install python3.11为什么指定3.11因为这是目前LangChain兼容性最好的Python版本。安装完成后需要修正一个MacOS的常见问题——系统自带的Python2会干扰我们的环境echo alias python/usr/local/bin/python3 ~/.zshrc echo alias pip/usr/local/bin/pip3 ~/.zshrc验证安装是否成功python --version # 应该显示Python 3.11.x pip --version # 应该关联到Python 3.11的pip2. Pip加速与虚拟环境配置直接使用pip安装包可能会遇到超时问题我们需要配置国内镜像源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple创建独立的虚拟环境是Python开发的最佳实践python -m venv langchain_env source langchain_env/bin/activate你的终端提示符前会出现(langchain_env)标识代表已经进入虚拟环境。这个隔离的环境可以避免包依赖冲突。提示退出虚拟环境使用deactivate命令重新进入只需在项目目录执行source langchain_env/bin/activate3. LangChain核心组件安装现在可以安装LangChain及其依赖了推荐分步安装以避免依赖冲突pip install langchain-core pip install langchain-community pip install langchain-text-splittersChromaDB的安装有个小技巧——先安装基础依赖pip install chromadb pip install sentence-transformers如果遇到hnswlib相关错误执行export HNSWLIB_NO_NATIVE1 pip install --force-reinstall chromadb验证安装是否成功import chromadb print(chromadb.__version__) # 应该输出类似0.4.15的版本号4. 开发环境实战测试让我们用实际代码验证环境是否正常工作。创建一个test_chroma.py文件import chromadb from chromadb.config import Settings # 配置持久化路径 client chromadb.Client(Settings( persist_directory./test_db, chroma_db_implduckdbparquet )) # 创建集合 collection client.create_collection(test_collection) # 添加文档 collection.add( documents[苹果是一种水果, 香蕉是热带作物], metadatas[{source: 百科1}, {source: 百科2}], ids[id1, id2] ) # 查询测试 results collection.query( query_texts[热带水果], n_results1 ) print(results)运行这个脚本python test_chroma.py正常输出应该包含与热带相关的文档内容。你还会发现项目目录下多了test_db文件夹这就是ChromaDB的持久化存储。5. 常见问题解决方案问题1ERROR: Could not build wheels for hnswlib...解决方案brew install cmake pip install --upgrade pip setuptools wheel HNSWLIB_NO_NATIVE1 pip install chromadb问题2SSL: CERTIFICATE_VERIFY_FAILED解决方案/Applications/Python\ 3.11/Install\ Certificates.command问题3Pip安装超时除了使用镜像源还可以pip --default-timeout1000 install [包名]6. 进阶配置集成OpenAI要使用LangChain的OpenAI组件需要额外安装pip install openai pip install tiktoken然后在代码中配置API密钥import os os.environ[OPENAI_API_KEY] 你的实际API密钥测试OpenAI Embeddingsfrom langchain.embeddings import OpenAIEmbeddings embeddings OpenAIEmbeddings() text 测试文本 query_result embeddings.embed_query(text) print(len(query_result)) # 应该输出1536(ada-002的维度)7. 开发环境优化技巧VS Code配置安装Python和Pylance扩展设置.vscode/settings.json{ python.pythonPath: langchain_env/bin/python, python.linting.enabled: true }Jupyter Notebook支持pip install ipykernel python -m ipykernel install --user --namelangchain_envDocker备选方案适合复杂项目FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt对应的requirements.txtlangchain-core0.1.0 chromadb0.4.15 openai1.3.08. 项目结构建议规范的目录结构能提升开发效率my_langchain_project/ ├── docs/ # 文档 ├── notebooks/ # Jupyter笔记本 ├── src/ # 源代码 │ ├── __init__.py │ ├── utils/ # 工具函数 │ └── main.py # 主入口 ├── tests/ # 单元测试 ├── .env # 环境变量 ├── .gitignore ├── requirements.txt # 依赖列表 └── README.md关键工具链安装pip install black flake8 pytest # 代码格式化、静态检查、测试配置pre-commit钩子在.git/hooks/pre-commit中添加#!/bin/sh black . flake8 . pytest
MacBook上从零搭建LangChain开发环境:Python3、Pip、ChromaDB一步到位(含Homebrew提速技巧)
MacBook上从零搭建LangChain开发环境Python3、Pip、ChromaDB一步到位含Homebrew提速技巧刚拿到MacBook准备开发AI应用面对Python环境配置、包管理工具安装、向量数据库部署这些基础环节很多新手开发者容易在第一步就踩坑。本文将带你用最优雅的方式完成LangChain开发环境搭建特别针对Homebrew安装慢、Pip超时等典型问题提供实战解决方案。1. 开发环境准备避开Homebrew的坑Mac开发者绕不开Homebrew这个包管理神器但默认安装方式可能会让你在Updating Homebrew...界面卡上半小时。我们先解决这个痛点。国内用户推荐使用中科大镜像源加速在终端执行以下命令/bin/bash -c $(curl -fsSL https://cdn.jsdelivr.net/gh/ineo6/homebrew-install/install.sh)安装完成后在.zshrc或.bash_profile中添加以下环境变量根据你使用的shell选择export HOMEBREW_BREW_GIT_REMOTEhttps://mirrors.ustc.edu.cn/brew.git export HOMEBREW_CORE_GIT_REMOTEhttps://mirrors.ustc.edu.cn/homebrew-core.git然后执行source ~/.zshrc使配置生效。这样后续所有brew操作都会走国内镜像速度提升10倍不止。注意如果已经安装过Homebrew可以通过git -C $(brew --repo) remote set-url origin命令修改仓库地址。安装Python3的正确姿势brew install python3.11为什么指定3.11因为这是目前LangChain兼容性最好的Python版本。安装完成后需要修正一个MacOS的常见问题——系统自带的Python2会干扰我们的环境echo alias python/usr/local/bin/python3 ~/.zshrc echo alias pip/usr/local/bin/pip3 ~/.zshrc验证安装是否成功python --version # 应该显示Python 3.11.x pip --version # 应该关联到Python 3.11的pip2. Pip加速与虚拟环境配置直接使用pip安装包可能会遇到超时问题我们需要配置国内镜像源pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple创建独立的虚拟环境是Python开发的最佳实践python -m venv langchain_env source langchain_env/bin/activate你的终端提示符前会出现(langchain_env)标识代表已经进入虚拟环境。这个隔离的环境可以避免包依赖冲突。提示退出虚拟环境使用deactivate命令重新进入只需在项目目录执行source langchain_env/bin/activate3. LangChain核心组件安装现在可以安装LangChain及其依赖了推荐分步安装以避免依赖冲突pip install langchain-core pip install langchain-community pip install langchain-text-splittersChromaDB的安装有个小技巧——先安装基础依赖pip install chromadb pip install sentence-transformers如果遇到hnswlib相关错误执行export HNSWLIB_NO_NATIVE1 pip install --force-reinstall chromadb验证安装是否成功import chromadb print(chromadb.__version__) # 应该输出类似0.4.15的版本号4. 开发环境实战测试让我们用实际代码验证环境是否正常工作。创建一个test_chroma.py文件import chromadb from chromadb.config import Settings # 配置持久化路径 client chromadb.Client(Settings( persist_directory./test_db, chroma_db_implduckdbparquet )) # 创建集合 collection client.create_collection(test_collection) # 添加文档 collection.add( documents[苹果是一种水果, 香蕉是热带作物], metadatas[{source: 百科1}, {source: 百科2}], ids[id1, id2] ) # 查询测试 results collection.query( query_texts[热带水果], n_results1 ) print(results)运行这个脚本python test_chroma.py正常输出应该包含与热带相关的文档内容。你还会发现项目目录下多了test_db文件夹这就是ChromaDB的持久化存储。5. 常见问题解决方案问题1ERROR: Could not build wheels for hnswlib...解决方案brew install cmake pip install --upgrade pip setuptools wheel HNSWLIB_NO_NATIVE1 pip install chromadb问题2SSL: CERTIFICATE_VERIFY_FAILED解决方案/Applications/Python\ 3.11/Install\ Certificates.command问题3Pip安装超时除了使用镜像源还可以pip --default-timeout1000 install [包名]6. 进阶配置集成OpenAI要使用LangChain的OpenAI组件需要额外安装pip install openai pip install tiktoken然后在代码中配置API密钥import os os.environ[OPENAI_API_KEY] 你的实际API密钥测试OpenAI Embeddingsfrom langchain.embeddings import OpenAIEmbeddings embeddings OpenAIEmbeddings() text 测试文本 query_result embeddings.embed_query(text) print(len(query_result)) # 应该输出1536(ada-002的维度)7. 开发环境优化技巧VS Code配置安装Python和Pylance扩展设置.vscode/settings.json{ python.pythonPath: langchain_env/bin/python, python.linting.enabled: true }Jupyter Notebook支持pip install ipykernel python -m ipykernel install --user --namelangchain_envDocker备选方案适合复杂项目FROM python:3.11-slim WORKDIR /app COPY requirements.txt . RUN pip install -r requirements.txt对应的requirements.txtlangchain-core0.1.0 chromadb0.4.15 openai1.3.08. 项目结构建议规范的目录结构能提升开发效率my_langchain_project/ ├── docs/ # 文档 ├── notebooks/ # Jupyter笔记本 ├── src/ # 源代码 │ ├── __init__.py │ ├── utils/ # 工具函数 │ └── main.py # 主入口 ├── tests/ # 单元测试 ├── .env # 环境变量 ├── .gitignore ├── requirements.txt # 依赖列表 └── README.md关键工具链安装pip install black flake8 pytest # 代码格式化、静态检查、测试配置pre-commit钩子在.git/hooks/pre-commit中添加#!/bin/sh black . flake8 . pytest