欢迎光临
我们一直在努力

LangChain 实战系列(一) —— 在 Windows 上安装 LangChain 的详细步骤

目录

1. 环境要求

系统要求

硬件建议

2. 安装步骤

步骤 1:安装 Python

步骤 2:创建虚拟环境(推荐)

步骤 3:安装 LangChain

步骤 4:安装 LLM 提供商支持

步骤 5:安装可视化工具(可选)

步骤 6:验证安装

3. 配置开发环境

Visual Studio Code 配置

配置环境变量

4. 常见问题解决

问题 1:pip 安装速度慢

问题 2:权限错误

问题 3:依赖冲突

问题 4:C++ 编译错误(某些包需要)

5. 快速测试示例

6. 下一步


1. 环境要求

系统要求

  • Windows 10 或更高版本

  • Python 3.8 或更高版本

  • 建议使用 Windows 11 以获得更好的开发体验

硬件建议

  • 至少 8GB RAM(推荐 16GB+)

  • 至少 10GB 可用磁盘空间

  • 稳定的网络连接

2. 安装步骤

步骤 1:安装 Python

  • 下载 Python

    • 访问 Python 官网

    • 下载 Python 3.9+ 版本(建议 3.10 或 3.11)

    • 选择 Windows installer (64-bit)

  • 安装 Python

  • # 安装时务必勾选以下选项:
    – ✅ Add Python to PATH(重要!)
    – ✅ Install launcher for all users

              验证安装

    # 打开 PowerShell 或 CMD
    python –version
    # 应该显示 Python 3.x.x

    pip –version
    # 应该显示 pip 版本

    步骤 2:创建虚拟环境(推荐)

  • 使用 venv 创建虚拟环境

  • # 创建项目目录
    mkdir langchain-project
    cd langchain-project

    # 创建虚拟环境
    python -m venv venv

    # 激活虚拟环境
    # PowerShell:
    venv\\Scripts\\Activate.ps1
    # 如果遇到执行策略问题,运行:
    Set-ExecutionPolicy -ExecutionPolicy RemoteSigned -Scope CurrentUser

    # CMD:
    venv\\Scripts\\activate.bat

              验证虚拟环境

    # 激活后,命令行前应显示 (venv)
    (venv) D:\\langchain-project>

    步骤 3:安装 LangChain

  • 基础安装

  • pip install langchain

              安装核心依赖(推荐)

    # 安装 LangChain 核心及相关工具
    pip install langchain langchain-community

    # 安装 OpenAI 集成(如果需要)
    pip install openai

    # 安装常用工具
    pip install python-dotenv # 环境变量管理
    pip install tiktoken # OpenAI token 计数

           安装向量数据库支持

    # 根据需求选择安装
    pip install chromadb # 轻量级向量数据库
    pip install faiss-cpu # Facebook AI 相似度搜索
    pip install sentence-transformers # 本地 embedding

    步骤 4:安装 LLM 提供商支持

    根据你的需求选择安装:

    # OpenAI(最常用)
    pip install openai

    # Anthropic Claude
    pip install anthropic

    # Google Gemini
    pip install google-generativeai

    # 本地模型(需要 GPU)
    pip install transformers torch torchvision torchaudio
    # 安装 CUDA 版本(如果有 NVIDIA GPU)
    pip install torch torchvision torchaudio –index-url https://download.pytorch.org/whl/cu118

    步骤 5:安装可视化工具(可选)

    # LangSmith(用于追踪和调试)
    pip install langsmith

    # Streamlit(用于构建 Web 界面)
    pip install streamlit

    # Gradio(另一种 UI 框架)
    pip install gradio

     上述库包的实操记录:

    (venv) D:\\MyProjects>pip install openai
    Collecting openai
    Downloading openai-2.16.0-py3-none-any.whl.metadata (29 kB)
    Collecting anyio<5,>=3.5.0 (from openai)
    Using cached anyio-4.12.1-py3-none-any.whl.metadata (4.3 kB)
    Collecting distro<2,>=1.7.0 (from openai)
    Downloading distro-1.9.0-py3-none-any.whl.metadata (6.8 kB)
    Collecting httpx<1,>=0.23.0 (from openai)
    Using cached httpx-0.28.1-py3-none-any.whl.metadata (7.1 kB)
    INFO: pip is looking at multiple versions of openai to determine which version is compatible with other requirements. This could take a while.
    Collecting openai
    Downloading openai-2.15.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.14.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.13.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.12.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.11.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.9.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.8.1-py3-none-any.whl.metadata (29 kB)
    INFO: pip is still looking at multiple versions of openai to determine which version is compatible with other requirements. This could take a while.
    Downloading openai-2.8.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.7.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.7.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.7.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.6.1-py3-none-any.whl.metadata (29 kB)
    INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
    Downloading openai-2.6.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.5.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.4.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.3.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.2.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.1.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.0.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-2.0.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.109.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.109.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.108.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.108.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.108.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.107.3-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.107.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.107.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.107.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.106.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.106.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.105.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.104.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.104.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.104.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.103.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.102.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.101.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.100.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.100.1-py3-none-any.whl.metadata (29 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/29 kB, attempt 1)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/aa/b4/686944f0903c65202e86311ec0f42171e697e4f7324caeee0c318046b738/openai-1.100.1-py3-none-any.whl.metadata
    Downloading openai-1.100.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.100.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.9-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.8-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.7-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.6-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.5-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.4-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.3-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.99.0-py3-none-any.whl.metadata (29 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/29 kB, attempt 1)
    Downloading openai-1.99.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.98.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.97.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.97.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.97.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.96.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.96.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.95.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.95.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.94.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.93.3-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.93.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.93.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.93.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.92.3-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.92.2-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.92.1-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.92.0-py3-none-any.whl.metadata (29 kB)
    Downloading openai-1.91.0-py3-none-any.whl.metadata (26 kB)
    Downloading openai-1.90.0-py3-none-any.whl.metadata (26 kB)
    Downloading openai-1.89.0-py3-none-any.whl.metadata (26 kB)
    Downloading openai-1.88.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.87.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.86.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.85.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.84.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.83.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.82.1-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.82.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.81.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.80.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.79.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.78.1-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.78.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.77.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.76.2-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.76.1-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.76.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.75.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.74.1-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.74.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.73.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.72.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.71.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.70.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.69.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.68.2-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.68.1-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.68.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.67.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.66.5-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.66.3-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.66.2-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.66.1-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.66.0-py3-none-any.whl.metadata (25 kB)
    Downloading openai-1.65.5-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.65.4-py3-none-any.whl.metadata (27 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/27 kB, attempt 1)
    Downloading openai-1.65.4-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.65.3-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.65.2-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.65.1-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.65.0-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.64.0-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.63.2-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.63.1-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.63.0-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.62.0-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.61.1-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.61.0-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.60.2-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.60.1-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.60.0-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.9-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.8-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.7-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.6-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.5-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.4-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.3-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.59.2-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.58.1-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.58.0-py3-none-any.whl.metadata (27 kB)
    Downloading openai-1.57.4-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.57.3-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.57.2-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.57.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.57.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.56.2-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.56.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.56.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.55.3-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.55.2-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.55.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.55.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.54.5-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.54.4-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.54.3-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.54.2-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.54.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.54.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.53.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.53.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.52.2-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.52.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.52.0-py3-none-any.whl.metadata (24 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/24 kB, attempt 1)
    Downloading openai-1.52.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.51.2-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.51.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.51.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.50.2-py3-none-any.whl.metadata (24 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/24 kB, attempt 1)
    Downloading openai-1.50.2-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.50.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.50.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.49.0-py3-none-any.whl.metadata (24 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/24 kB, attempt 1)
    Downloading openai-1.49.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.48.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.47.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.47.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.46.1-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.46.0-py3-none-any.whl.metadata (24 kB)
    Downloading openai-1.45.1-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.45.0-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.44.1-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.44.0-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.43.1-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.43.0-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.42.0-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.41.1-py3-none-any.whl.metadata (22 kB)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/b6/62/940a75b447ffb607be7840df3602ba2c75b9a1504364d9837b187deacc33/openai-1.41.0-py3-none-any.whl.metadata
    Downloading openai-1.41.0-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.8-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.7-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.6-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.5-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.4-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.3-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.2-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.1-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.40.0-py3-none-any.whl.metadata (22 kB)
    Downloading openai-1.39.0-py3-none-any.whl.metadata (22 kB)
    Collecting pydantic<3,>=1.9.0 (from openai)
    Using cached pydantic-2.12.5-py3-none-any.whl.metadata (90 kB)
    Collecting sniffio (from openai)
    Downloading sniffio-1.3.1-py3-none-any.whl.metadata (3.9 kB)
    Collecting tqdm>4 (from openai)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/d0/30/dc54f88dd4a2b5dc8a0279bdd7270e735851848b762aeb1c1184ed1f6b14/tqdm-4.67.1-py3-none-any.whl.metadata
    Downloading tqdm-4.67.1-py3-none-any.whl.metadata (57 kB)
    Collecting typing-extensions<5,>=4.7 (from openai)
    Using cached typing_extensions-4.15.0-py3-none-any.whl.metadata (3.3 kB)
    Collecting idna>=2.8 (from anyio<5,>=3.5.0->openai)
    Using cached idna-3.11-py3-none-any.whl.metadata (8.4 kB)
    Collecting certifi (from httpx<1,>=0.23.0->openai)
    Using cached certifi-2026.1.4-py3-none-any.whl.metadata (2.5 kB)
    Collecting httpcore==1.* (from httpx<1,>=0.23.0->openai)
    Using cached httpcore-1.0.9-py3-none-any.whl.metadata (21 kB)
    Collecting h11>=0.16 (from httpcore==1.*->httpx<1,>=0.23.0->openai)
    Using cached h11-0.16.0-py3-none-any.whl.metadata (8.3 kB)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/annotated-types/
    Collecting annotated-types>=0.6.0 (from pydantic<3,>=1.9.0->openai)
    Using cached annotated_types-0.7.0-py3-none-any.whl.metadata (15 kB)
    Collecting pydantic-core==2.41.5 (from pydantic<3,>=1.9.0->openai)
    Using cached pydantic_core-2.41.5-cp313-cp313-win_amd64.whl.metadata (7.4 kB)
    Collecting typing-inspection>=0.4.2 (from pydantic<3,>=1.9.0->openai)
    Using cached typing_inspection-0.4.2-py3-none-any.whl.metadata (2.6 kB)
    Collecting colorama (from tqdm>4->openai)
    Downloading colorama-0.4.6-py2.py3-none-any.whl.metadata (17 kB)
    Downloading openai-1.39.0-py3-none-any.whl (336 kB)
    Downloading anyio-4.12.1-py3-none-any.whl (113 kB)
    Downloading distro-1.9.0-py3-none-any.whl (20 kB)
    Downloading httpx-0.28.1-py3-none-any.whl (73 kB)
    Downloading httpcore-1.0.9-py3-none-any.whl (78 kB)
    Downloading pydantic-2.12.5-py3-none-any.whl (463 kB)
    Downloading pydantic_core-2.41.5-cp313-cp313-win_amd64.whl (2.0 MB)
    —————————————- 0.0/2.0 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/2.0 MB, attempt 1)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ProtocolError('Connection aborted.', ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))': /packages/9e/8b/341991b158ddab181cff136acd2552c9f35bd30380422a639c0671e99a91/pydantic_core-2.41.5-cp313-cp313-win_amd64.whl
    Downloading pydantic_core-2.41.5-cp313-cp313-win_amd64.whl (2.0 MB)
    ——————– ——————- 1.0/2.0 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (1.0 MB/2.0 MB, attempt 2)
    Resuming download pydantic_core-2.41.5-cp313-cp313-win_amd64.whl (1.0 MB/2.0 MB)
    ————————- ————– 1.3/2.0 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (1.3 MB/2.0 MB, attempt 3)
    Resuming download pydantic_core-2.41.5-cp313-cp313-win_amd64.whl (1.3 MB/2.0 MB)
    ————————- ————– 1.3/2.0 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (1.3 MB/2.0 MB, attempt 4)
    Resuming download pydantic_core-2.41.5-cp313-cp313-win_amd64.whl (1.3 MB/2.0 MB)
    ———————————— — 1.8/2.0 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (1.8 MB/2.0 MB, attempt 5)
    Resuming download pydantic_core-2.41.5-cp313-cp313-win_amd64.whl (1.8 MB/2.0 MB)
    —————————————- 2.0/2.0 MB ? 0:00:33
    Downloading typing_extensions-4.15.0-py3-none-any.whl (44 kB)
    Downloading annotated_types-0.7.0-py3-none-any.whl (13 kB)
    Downloading h11-0.16.0-py3-none-any.whl (37 kB)
    Downloading idna-3.11-py3-none-any.whl (71 kB)
    Downloading tqdm-4.67.1-py3-none-any.whl (78 kB)
    Downloading typing_inspection-0.4.2-py3-none-any.whl (14 kB)
    Downloading certifi-2026.1.4-py3-none-any.whl (152 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/152 kB, attempt 1)
    Downloading certifi-2026.1.4-py3-none-any.whl (152 kB)
    Downloading colorama-0.4.6-py2.py3-none-any.whl (25 kB)
    Downloading sniffio-1.3.1-py3-none-any.whl (10 kB)
    Installing collected packages: typing-extensions, sniffio, idna, h11, distro, colorama, certifi, annotated-types, typing-inspection, tqdm, pydantic-core, httpcore, anyio, pydantic, httpx, openai
    Successfully installed annotated-types-0.7.0 anyio-4.12.1 certifi-2026.1.4 colorama-0.4.6 distro-1.9.0 h11-0.16.0 httpcore-1.0.9 httpx-0.28.1 idna-3.11 openai-1.39.0 pydantic-2.12.5 pydantic-core-2.41.5 sniffio-1.3.1 tqdm-4.67.1 typing-extensions-4.15.0 typing-inspection-0.4.2

    (venv) D:\\MyProjects>
    (venv) D:\\MyProjects>
    (venv) D:\\MyProjects>
    (venv) D:\\MyProjects>
    (venv) D:\\MyProjects>pip install python-dotenv
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/python-dotenv/
    Collecting python-dotenv
    Using cached python_dotenv-1.2.1-py3-none-any.whl.metadata (25 kB)
    Downloading python_dotenv-1.2.1-py3-none-any.whl (21 kB)
    Installing collected packages: python-dotenv
    Successfully installed python-dotenv-1.2.1

    (venv) D:\\MyProjects>pip install tiktoken
    Collecting tiktoken
    Downloading tiktoken-0.12.0-cp313-cp313-win_amd64.whl.metadata (6.9 kB)
    Collecting regex>=2022.1.18 (from tiktoken)
    Downloading regex-2026.1.15-cp313-cp313-win_amd64.whl.metadata (41 kB)
    Collecting requests>=2.26.0 (from tiktoken)
    Using cached requests-2.32.5-py3-none-any.whl.metadata (4.9 kB)
    Collecting charset_normalizer<4,>=2 (from requests>=2.26.0->tiktoken)
    Downloading charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl.metadata (38 kB)
    Requirement already satisfied: idna<4,>=2.5 in d:\\myprojects\\venv\\lib\\site-packages (from requests>=2.26.0->tiktoken) (3.11)
    Collecting urllib3<3,>=1.21.1 (from requests>=2.26.0->tiktoken)
    Downloading urllib3-2.6.3-py3-none-any.whl.metadata (6.9 kB)
    Requirement already satisfied: certifi>=2017.4.17 in d:\\myprojects\\venv\\lib\\site-packages (from requests>=2.26.0->tiktoken) (2026.1.4)
    Downloading tiktoken-0.12.0-cp313-cp313-win_amd64.whl (879 kB)
    —————————————- 879.1/879.1 kB 9.6 kB/s 0:01:22
    Downloading regex-2026.1.15-cp313-cp313-win_amd64.whl (277 kB)
    Downloading requests-2.32.5-py3-none-any.whl (64 kB)
    Downloading charset_normalizer-3.4.4-cp313-cp313-win_amd64.whl (107 kB)
    Downloading urllib3-2.6.3-py3-none-any.whl (131 kB)
    Installing collected packages: urllib3, regex, charset_normalizer, requests, tiktoken
    Successfully installed charset_normalizer-3.4.4 regex-2026.1.15 requests-2.32.5 tiktoken-0.12.0 urllib3-2.6.3

    (venv) D:\\MyProjects>pip install chromadb
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001D1139B96A0>: Failed to establish a new connection: [WinError 10051] 向一个无法连接的网络尝试了一个套接字操作。')': /simple/chromadb/
    WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001D113981F90>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /simple/chromadb/
    WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001D113982210>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /simple/chromadb/
    WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001D113982490>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /simple/chromadb/
    WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x000001D113982710>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /simple/chromadb/
    ERROR: Could not find a version that satisfies the requirement chromadb (from versions: none)
    ERROR: No matching distribution found for chromadb

    (venv) D:\\MyProjects>pip install sentence-transformers
    Collecting sentence-transformers
    Downloading sentence_transformers-5.2.2-py3-none-any.whl.metadata (16 kB)
    Collecting transformers<6.0.0,>=4.41.0 (from sentence-transformers)
    Downloading transformers-5.0.0-py3-none-any.whl.metadata (37 kB)
    Collecting huggingface-hub>=0.20.0 (from sentence-transformers)
    Downloading huggingface_hub-1.3.4-py3-none-any.whl.metadata (13 kB)
    Collecting torch>=1.11.0 (from sentence-transformers)
    Downloading torch-2.10.0-cp313-cp313-win_amd64.whl.metadata (31 kB)
    Collecting numpy (from sentence-transformers)
    Downloading numpy-2.4.1-cp313-cp313-win_amd64.whl.metadata (6.6 kB)
    Collecting scikit-learn (from sentence-transformers)
    Downloading scikit_learn-1.8.0-cp313-cp313-win_amd64.whl.metadata (11 kB)
    INFO: pip is looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while.
    Collecting sentence-transformers
    Downloading sentence_transformers-5.2.1-py3-none-any.whl.metadata (16 kB)
    Downloading sentence_transformers-5.2.0-py3-none-any.whl.metadata (16 kB)
    Requirement already satisfied: tqdm in d:\\myprojects\\venv\\lib\\site-packages (from sentence-transformers) (4.67.1)
    Downloading sentence_transformers-5.1.2-py3-none-any.whl.metadata (16 kB)
    Collecting transformers<5.0.0,>=4.41.0 (from sentence-transformers)
    Downloading transformers-4.57.6-py3-none-any.whl.metadata (43 kB)
    Collecting sentence-transformers
    Downloading sentence_transformers-5.1.1-py3-none-any.whl.metadata (16 kB)
    Downloading sentence_transformers-5.1.0-py3-none-any.whl.metadata (16 kB)
    Downloading sentence_transformers-5.0.0-py3-none-any.whl.metadata (16 kB)
    Downloading sentence_transformers-4.1.0-py3-none-any.whl.metadata (13 kB)
    INFO: pip is still looking at multiple versions of sentence-transformers to determine which version is compatible with other requirements. This could take a while.
    Downloading sentence_transformers-4.0.2-py3-none-any.whl.metadata (13 kB)
    Downloading sentence_transformers-4.0.1-py3-none-any.whl.metadata (13 kB)
    Downloading sentence_transformers-4.0.0-py3-none-any.whl.metadata (13 kB)
    Downloading sentence_transformers-3.4.1-py3-none-any.whl.metadata (10 kB)
    Downloading sentence_transformers-3.4.0-py3-none-any.whl.metadata (10 kB)
    INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
    Downloading sentence_transformers-3.3.1-py3-none-any.whl.metadata (10 kB)
    Downloading sentence_transformers-3.3.0-py3-none-any.whl.metadata (10 kB)
    Downloading sentence_transformers-3.2.1-py3-none-any.whl.metadata (10 kB)
    Downloading sentence_transformers-3.2.0-py3-none-any.whl.metadata (10 kB)
    Downloading sentence_transformers-3.1.1-py3-none-any.whl.metadata (10 kB)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/90/b4/52b8205f24172f2429cacf04bac324414f16b61d64e79c787c9ce2385586/sentence_transformers-3.1.0-py3-none-any.whl.metadata
    WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000017622243250>: Failed to establish a new connection: [WinError 10051] 向一个无法连接的网络尝试了一个套接字操作。')': /packages/90/b4/52b8205f24172f2429cacf04bac324414f16b61d64e79c787c9ce2385586/sentence_transformers-3.1.0-py3-none-any.whl.metadata
    WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'NewConnectionError('<pip._vendor.urllib3.connection.HTTPSConnection object at 0x0000017622240B90>: Failed to establish a new connection: [Errno 11001] getaddrinfo failed')': /packages/90/b4/52b8205f24172f2429cacf04bac324414f16b61d64e79c787c9ce2385586/sentence_transformers-3.1.0-py3-none-any.whl.metadata
    Downloading sentence_transformers-3.1.0-py3-none-any.whl.metadata (23 kB)
    Collecting numpy<2.0.0 (from sentence-transformers)
    Downloading numpy-1.26.4.tar.gz (15.8 MB)
    – ————————————– 0.5/15.8 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (524 kB/15.8 MB, attempt 1)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/65/6e/09db70a523a96d25e115e71cc56a6f9031e7b8cd166c1ac8438307c14058/numpy-1.26.4.tar.gz
    Resuming download numpy-1.26.4.tar.gz (524 kB/15.8 MB)
    – ————————————– 0.5/15.8 MB ? eta -:–:–
    ERROR: Exception:
    Traceback (most recent call last):
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\urllib3\\response.py", line 438, in _error_catcher
    yield
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\urllib3\\response.py", line 561, in read
    data = self._fp_read(amt) if not fp_closed else b""
    ~~~~~~~~~~~~~^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\urllib3\\response.py", line 527, in _fp_read
    return self._fp.read(amt) if amt is not None else self._fp.read()
    ~~~~~~~~~~~~~^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\cachecontrol\\filewrapper.py", line 98, in read
    data: bytes = self.__fp.read(amt)
    ~~~~~~~~~~~~~~^^^^^
    File "C:\\Users\\jiangping\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\http\\client.py", line 484, in read
    s = self.fp.read(amt)
    File "C:\\Users\\jiangping\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\socket.py", line 719, in readinto
    return self._sock.recv_into(b)
    ~~~~~~~~~~~~~~~~~~~~^^^
    File "C:\\Users\\jiangping\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ssl.py", line 1304, in recv_into
    return self.read(nbytes, buffer)
    ~~~~~~~~~^^^^^^^^^^^^^^^^
    File "C:\\Users\\jiangping\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\ssl.py", line 1138, in read
    return self._sslobj.read(len, buffer)
    ~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^
    ConnectionResetError: [WinError 10054] 远程主机强迫关闭了一个现有的连接。

    During handling of the above exception, another exception occurred:

    Traceback (most recent call last):
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\cli\\base_command.py", line 107, in _run_wrapper
    status = _inner_run()
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\cli\\base_command.py", line 98, in _inner_run
    return self.run(options, args)
    ~~~~~~~~^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\cli\\req_command.py", line 85, in wrapper
    return func(self, options, args)
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\commands\\install.py", line 388, in run
    requirement_set = resolver.resolve(
    reqs, check_supported_wheels=not options.target_dir
    )
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\resolver.py", line 99, in resolve
    result = self._result = resolver.resolve(
    ~~~~~~~~~~~~~~~~^
    collected.requirements, max_rounds=limit_how_complex_resolution_can_be
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\resolvelib\\resolvers\\resolution.py", line 601, in resolve
    state = resolution.resolve(requirements, max_rounds=max_rounds)
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\resolvelib\\resolvers\\resolution.py", line 513, in resolve
    failure_criterion = self._attempt_to_pin_criterion(name)
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\resolvelib\\resolvers\\resolution.py", line 220, in _attempt_to_pin_criterion
    criteria = self._get_updated_criteria(candidate)
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\resolvelib\\resolvers\\resolution.py", line 211, in _get_updated_criteria
    self._add_to_criteria(criteria, requirement, parent=candidate)
    ~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\resolvelib\\resolvers\\resolution.py", line 150, in _add_to_criteria
    if not criterion.candidates:
    ^^^^^^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\resolvelib\\structs.py", line 194, in __bool__
    return bool(self._sequence)
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\found_candidates.py", line 165, in __bool__
    self._bool = any(self)
    ~~~^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\found_candidates.py", line 149, in <genexpr>
    return (c for c in iterator if id(c) not in self._incompatible_ids)
    ^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\found_candidates.py", line 39, in _iter_built
    candidate = func()
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\factory.py", line 180, in _make_candidate_from_link
    base: BaseCandidate | None = self._make_base_candidate_from_link(
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    link, template, name, version
    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    )
    ^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\factory.py", line 226, in _make_base_candidate_from_link
    self._link_candidate_cache[link] = LinkCandidate(
    ~~~~~~~~~~~~~^
    link,
    ^^^^^
    …<3 lines>…
    version=version,
    ^^^^^^^^^^^^^^^^
    )
    ^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\candidates.py", line 318, in __init__
    super().__init__(
    ~~~~~~~~~~~~~~~~^
    link=link,
    ^^^^^^^^^^
    …<4 lines>…
    version=version,
    ^^^^^^^^^^^^^^^^
    )
    ^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\candidates.py", line 161, in __init__
    self.dist = self._prepare()
    ~~~~~~~~~~~~~^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\candidates.py", line 238, in _prepare
    dist = self._prepare_distribution()
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\resolution\\resolvelib\\candidates.py", line 329, in _prepare_distribution
    return preparer.prepare_linked_requirement(self._ireq, parallel_builds=True)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\operations\\prepare.py", line 543, in prepare_linked_requirement
    return self._prepare_linked_requirement(req, parallel_builds)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\operations\\prepare.py", line 614, in _prepare_linked_requirement
    local_file = unpack_url(
    link,
    …<4 lines>…
    hashes,
    )
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\operations\\prepare.py", line 180, in unpack_url
    file = get_http_url(
    link,
    …<2 lines>…
    hashes=hashes,
    )
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\operations\\prepare.py", line 121, in get_http_url
    from_path, content_type = download(link, temp_dir.path)
    ~~~~~~~~^^^^^^^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\network\\download.py", line 197, in __call__
    self._attempt_resumes_or_redownloads(download, resp)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\network\\download.py", line 247, in _attempt_resumes_or_redownloads
    self._process_response(download, resume_resp)
    ~~~~~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\network\\download.py", line 212, in _process_response
    for chunk in chunks:
    ^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\cli\\progress_bars.py", line 67, in _rich_download_progress_bar
    for chunk in iterable:
    ^^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_internal\\network\\utils.py", line 65, in response_chunks
    for chunk in response.raw.stream(
    ~~~~~~~~~~~~~~~~~~~^
    chunk_size,
    ^^^^^^^^^^^
    …<22 lines>…
    decode_content=False,
    ^^^^^^^^^^^^^^^^^^^^^
    ):
    ^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\urllib3\\response.py", line 622, in stream
    data = self.read(amt=amt, decode_content=decode_content)
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\urllib3\\response.py", line 560, in read
    with self._error_catcher():
    ~~~~~~~~~~~~~~~~~~~^^
    File "C:\\Users\\jiangping\\AppData\\Local\\Programs\\Python\\Python313\\Lib\\contextlib.py", line 162, in __exit__
    self.gen.throw(value)
    ~~~~~~~~~~~~~~^^^^^^^
    File "D:\\MyProjects\\venv\\Lib\\site-packages\\pip\\_vendor\\urllib3\\response.py", line 455, in _error_catcher
    raise ProtocolError("Connection broken: %r" % e, e)
    pip._vendor.urllib3.exceptions.ProtocolError: ("Connection broken: ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None)", ConnectionResetError(10054, '远程主机强迫关闭了一个现有的连接。', None, 10054, None))

    (venv) D:\\MyProjects>
    (venv) D:\\MyProjects>pip install anthropic
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/anthropic/
    WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/anthropic/
    Collecting anthropic
    Downloading anthropic-0.76.0-py3-none-any.whl.metadata (28 kB)
    Requirement already satisfied: anyio<5,>=3.5.0 in d:\\myprojects\\venv\\lib\\site-packages (from anthropic) (4.12.1)
    Requirement already satisfied: distro<2,>=1.7.0 in d:\\myprojects\\venv\\lib\\site-packages (from anthropic) (1.9.0)
    Collecting docstring-parser<1,>=0.15 (from anthropic)
    Downloading docstring_parser-0.17.0-py3-none-any.whl.metadata (3.5 kB)
    Requirement already satisfied: httpx<1,>=0.25.0 in d:\\myprojects\\venv\\lib\\site-packages (from anthropic) (0.28.1)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/jiter/
    Collecting jiter<1,>=0.4.0 (from anthropic)
    Downloading jiter-0.12.0-cp313-cp313-win_amd64.whl.metadata (5.3 kB)
    Requirement already satisfied: pydantic<3,>=1.9.0 in d:\\myprojects\\venv\\lib\\site-packages (from anthropic) (2.12.5)
    Requirement already satisfied: sniffio in d:\\myprojects\\venv\\lib\\site-packages (from anthropic) (1.3.1)
    Requirement already satisfied: typing-extensions<5,>=4.10 in d:\\myprojects\\venv\\lib\\site-packages (from anthropic) (4.15.0)
    Requirement already satisfied: idna>=2.8 in d:\\myprojects\\venv\\lib\\site-packages (from anyio<5,>=3.5.0->anthropic) (3.11)
    Requirement already satisfied: certifi in d:\\myprojects\\venv\\lib\\site-packages (from httpx<1,>=0.25.0->anthropic) (2026.1.4)
    Requirement already satisfied: httpcore==1.* in d:\\myprojects\\venv\\lib\\site-packages (from httpx<1,>=0.25.0->anthropic) (1.0.9)
    Requirement already satisfied: h11>=0.16 in d:\\myprojects\\venv\\lib\\site-packages (from httpcore==1.*->httpx<1,>=0.25.0->anthropic) (0.16.0)
    Requirement already satisfied: annotated-types>=0.6.0 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3,>=1.9.0->anthropic) (0.7.0)
    Requirement already satisfied: pydantic-core==2.41.5 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3,>=1.9.0->anthropic) (2.41.5)
    Requirement already satisfied: typing-inspection>=0.4.2 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3,>=1.9.0->anthropic) (0.4.2)
    Downloading anthropic-0.76.0-py3-none-any.whl (390 kB)
    Downloading docstring_parser-0.17.0-py3-none-any.whl (36 kB)
    Downloading jiter-0.12.0-cp313-cp313-win_amd64.whl (204 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/204 kB, attempt 1)
    Downloading jiter-0.12.0-cp313-cp313-win_amd64.whl (204 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/204 kB, attempt 2)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/c4/1f/30b0eb087045a0abe2a5c9c0c0c8da110875a1d3be83afd4a9a4e548be3c/jiter-0.12.0-cp313-cp313-win_amd64.whl
    Downloading jiter-0.12.0-cp313-cp313-win_amd64.whl (204 kB)
    Installing collected packages: jiter, docstring-parser, anthropic
    Successfully installed anthropic-0.76.0 docstring-parser-0.17.0 jiter-0.12.0

    (venv) D:\\MyProjects>pip install langsmith
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/langsmith/
    Collecting langsmith
    Downloading langsmith-0.6.6-py3-none-any.whl.metadata (15 kB)
    Requirement already satisfied: httpx<1,>=0.23.0 in d:\\myprojects\\venv\\lib\\site-packages (from langsmith) (0.28.1)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='pypi.org', port=443): Read timed out. (read timeout=15)")': /simple/orjson/
    Collecting orjson>=3.9.14 (from langsmith)
    Using cached orjson-3.11.5-cp313-cp313-win_amd64.whl.metadata (42 kB)
    Collecting packaging>=23.2 (from langsmith)
    Downloading packaging-26.0-py3-none-any.whl.metadata (3.3 kB)
    Requirement already satisfied: pydantic<3,>=2 in d:\\myprojects\\venv\\lib\\site-packages (from langsmith) (2.12.5)
    Collecting requests-toolbelt>=1.0.0 (from langsmith)
    Using cached requests_toolbelt-1.0.0-py2.py3-none-any.whl.metadata (14 kB)
    Requirement already satisfied: requests>=2.0.0 in d:\\myprojects\\venv\\lib\\site-packages (from langsmith) (2.32.5)
    Collecting uuid-utils<1.0,>=0.12.0 (from langsmith)
    Downloading uuid_utils-0.14.0-cp39-abi3-win_amd64.whl.metadata (5.0 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/5.0 kB, attempt 1)
    Downloading uuid_utils-0.14.0-cp39-abi3-win_amd64.whl.metadata (5.0 kB)
    Collecting zstandard>=0.23.0 (from langsmith)
    Using cached zstandard-0.25.0-cp313-cp313-win_amd64.whl.metadata (3.3 kB)
    Requirement already satisfied: anyio in d:\\myprojects\\venv\\lib\\site-packages (from httpx<1,>=0.23.0->langsmith) (4.12.1)
    Requirement already satisfied: certifi in d:\\myprojects\\venv\\lib\\site-packages (from httpx<1,>=0.23.0->langsmith) (2026.1.4)
    Requirement already satisfied: httpcore==1.* in d:\\myprojects\\venv\\lib\\site-packages (from httpx<1,>=0.23.0->langsmith) (1.0.9)
    Requirement already satisfied: idna in d:\\myprojects\\venv\\lib\\site-packages (from httpx<1,>=0.23.0->langsmith) (3.11)
    Requirement already satisfied: h11>=0.16 in d:\\myprojects\\venv\\lib\\site-packages (from httpcore==1.*->httpx<1,>=0.23.0->langsmith) (0.16.0)
    Requirement already satisfied: annotated-types>=0.6.0 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3,>=2->langsmith) (0.7.0)
    Requirement already satisfied: pydantic-core==2.41.5 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3,>=2->langsmith) (2.41.5)
    Requirement already satisfied: typing-extensions>=4.14.1 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3,>=2->langsmith) (4.15.0)
    Requirement already satisfied: typing-inspection>=0.4.2 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3,>=2->langsmith) (0.4.2)
    Requirement already satisfied: charset_normalizer<4,>=2 in d:\\myprojects\\venv\\lib\\site-packages (from requests>=2.0.0->langsmith) (3.4.4)
    Requirement already satisfied: urllib3<3,>=1.21.1 in d:\\myprojects\\venv\\lib\\site-packages (from requests>=2.0.0->langsmith) (2.6.3)
    Downloading langsmith-0.6.6-py3-none-any.whl (308 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/308 kB, attempt 1)
    Downloading langsmith-0.6.6-py3-none-any.whl (308 kB)
    Downloading uuid_utils-0.14.0-cp39-abi3-win_amd64.whl (182 kB)
    Downloading orjson-3.11.5-cp313-cp313-win_amd64.whl (133 kB)
    Downloading packaging-26.0-py3-none-any.whl (74 kB)
    Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/54 kB, attempt 1)
    WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'ReadTimeoutError("HTTPSConnectionPool(host='files.pythonhosted.org', port=443): Read timed out. (read timeout=15)")': /packages/3f/51/d4db610ef29373b879047326cbf6fa98b6c1969d6f6dc423279de2b1be2c/requests_toolbelt-1.0.0-py2.py3-none-any.whl
    Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/54 kB, attempt 2)
    Downloading requests_toolbelt-1.0.0-py2.py3-none-any.whl (54 kB)
    Downloading zstandard-0.25.0-cp313-cp313-win_amd64.whl (506 kB)
    Installing collected packages: zstandard, uuid-utils, packaging, orjson, requests-toolbelt, langsmith
    Successfully installed langsmith-0.6.6 orjson-3.11.5 packaging-26.0 requests-toolbelt-1.0.0 uuid-utils-0.14.0 zstandard-0.25.0

    (venv) D:\\MyProjects>pip install streamlit
    Collecting streamlit
    Downloading streamlit-1.53.1-py3-none-any.whl.metadata (10 kB)
    Collecting altair!=5.4.0,!=5.4.1,<7,>=4.0 (from streamlit)
    Downloading altair-6.0.0-py3-none-any.whl.metadata (11 kB)
    Collecting blinker<2,>=1.5.0 (from streamlit)
    Downloading blinker-1.9.0-py3-none-any.whl.metadata (1.6 kB)
    Collecting cachetools<7,>=5.5 (from streamlit)
    Downloading cachetools-6.2.6-py3-none-any.whl.metadata (5.6 kB)
    Collecting click<9,>=7.0 (from streamlit)
    Downloading click-8.3.1-py3-none-any.whl.metadata (2.6 kB)
    Collecting numpy<3,>=1.23 (from streamlit)
    Using cached numpy-2.4.1-cp313-cp313-win_amd64.whl.metadata (6.6 kB)
    Requirement already satisfied: packaging>=20 in d:\\myprojects\\venv\\lib\\site-packages (from streamlit) (26.0)
    Collecting pandas<3,>=1.4.0 (from streamlit)
    Downloading pandas-2.3.3-cp313-cp313-win_amd64.whl.metadata (19 kB)
    Collecting pillow<13,>=7.1.0 (from streamlit)
    Downloading pillow-12.1.0-cp313-cp313-win_amd64.whl.metadata (9.0 kB)
    Collecting protobuf<7,>=3.20 (from streamlit)
    Downloading protobuf-6.33.4-cp310-abi3-win_amd64.whl.metadata (593 bytes)
    INFO: pip is looking at multiple versions of streamlit to determine which version is compatible with other requirements. This could take a while.
    Collecting streamlit
    Downloading streamlit-1.53.0-py3-none-any.whl.metadata (10 kB)
    Downloading streamlit-1.52.2-py3-none-any.whl.metadata (9.8 kB)
    Downloading streamlit-1.52.1-py3-none-any.whl.metadata (9.8 kB)
    Downloading streamlit-1.52.0-py3-none-any.whl.metadata (9.8 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/9.8 kB, attempt 1)
    Downloading streamlit-1.52.0-py3-none-any.whl.metadata (9.8 kB)
    Downloading streamlit-1.51.0-py3-none-any.whl.metadata (9.5 kB)
    Collecting altair!=5.4.0,!=5.4.1,<6,>=4.0 (from streamlit)
    Downloading altair-5.5.0-py3-none-any.whl.metadata (11 kB)
    Collecting packaging<26,>=20 (from streamlit)
    Using cached packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
    Collecting streamlit
    Downloading streamlit-1.50.0-py3-none-any.whl.metadata (9.5 kB)
    Collecting pillow<12,>=7.1.0 (from streamlit)
    Downloading pillow-11.3.0-cp313-cp313-win_amd64.whl.metadata (9.2 kB)
    Collecting streamlit
    Downloading streamlit-1.49.1-py3-none-any.whl.metadata (9.5 kB)
    INFO: pip is still looking at multiple versions of streamlit to determine which version is compatible with other requirements. This could take a while.
    Downloading streamlit-1.49.0-py3-none-any.whl.metadata (9.5 kB)
    Downloading streamlit-1.48.1-py3-none-any.whl.metadata (9.5 kB)
    Downloading streamlit-1.48.0-py3-none-any.whl.metadata (9.5 kB)
    Downloading streamlit-1.47.1-py3-none-any.whl.metadata (9.0 kB)
    Downloading streamlit-1.47.0-py3-none-any.whl.metadata (9.0 kB)
    INFO: This is taking longer than usual. You might need to provide the dependency resolver with stricter constraints to reduce runtime. See https://pip.pypa.io/warnings/backtracking for guidance. If you want to abort this run, press Ctrl + C.
    Downloading streamlit-1.46.1-py3-none-any.whl.metadata (9.0 kB)
    Downloading streamlit-1.46.0-py3-none-any.whl.metadata (9.0 kB)
    Downloading streamlit-1.45.1-py3-none-any.whl.metadata (8.9 kB)
    Collecting cachetools<6,>=4.0 (from streamlit)
    Downloading cachetools-5.5.2-py3-none-any.whl.metadata (5.4 kB)
    Collecting packaging<25,>=20 (from streamlit)
    Downloading packaging-24.2-py3-none-any.whl.metadata (3.2 kB)
    Collecting streamlit
    Downloading streamlit-1.45.0-py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.44.1-py3-none-any.whl.metadata (8.9 kB)
    Collecting protobuf<6,>=3.20 (from streamlit)
    Downloading protobuf-5.29.5-cp310-abi3-win_amd64.whl.metadata (592 bytes)
    Collecting streamlit
    Downloading streamlit-1.44.0-py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.43.2-py2.py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.43.1-py2.py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.43.0-py2.py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.42.2-py2.py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.42.1-py2.py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.42.0-py2.py3-none-any.whl.metadata (8.9 kB)
    Downloading streamlit-1.41.1-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.41.0-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.40.2-py2.py3-none-any.whl.metadata (8.4 kB)
    Downloading streamlit-1.40.1-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.40.0-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.39.1-py2.py3-none-any.whl.metadata (8.6 kB)
    Collecting pillow<11,>=7.1.0 (from streamlit)
    Downloading pillow-10.4.0-cp313-cp313-win_amd64.whl.metadata (9.3 kB)
    Collecting streamlit
    Downloading streamlit-1.39.0-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.38.0-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.37.1-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.37.0-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.36.0-py2.py3-none-any.whl.metadata (8.5 kB)
    Downloading streamlit-1.35.0-py2.py3-none-any.whl.metadata (8.5 kB)
    Collecting numpy<2,>=1.19.3 (from streamlit)
    Downloading numpy-1.26.4.tar.gz (15.8 MB)
    – ————————————– 0.8/15.8 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (786 kB/15.8 MB, attempt 1)
    Resuming download numpy-1.26.4.tar.gz (786 kB/15.8 MB)
    – ————————————– 0.8/15.8 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (786 kB/15.8 MB, attempt 2)
    Resuming download numpy-1.26.4.tar.gz (786 kB/15.8 MB)
    — ————————————- 1.0/15.8 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (1.0 MB/15.8 MB, attempt 3)
    Resuming download numpy-1.26.4.tar.gz (1.0 MB/15.8 MB)
    — ————————————- 1.0/15.8 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (1.0 MB/15.8 MB, attempt 4)
    Resuming download numpy-1.26.4.tar.gz (1.0 MB/15.8 MB)
    — ————————————- 1.0/15.8 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (1.0 MB/15.8 MB, attempt 5)
    Resuming download numpy-1.26.4.tar.gz (1.0 MB/15.8 MB)
    —— ——————————— 2.6/15.8 MB ? eta -:–:–
    WARNING: Connection timed out while downloading.
    ERROR: Could not install packages due to an OSError: [WinError 32] 另一个程序正在使用此文件,进程无法访问。: 'C:\\\\Users\\\\jiangping\\\\AppData\\\\Local\\\\Temp\\\\pip-unpack-chiy09jz\\\\numpy-1.26.4.tar.gz'
    Check the permissions.

    (venv) D:\\MyProjects>pip install langchain
    Collecting langchain
    Downloading langchain-1.2.7-py3-none-any.whl.metadata (4.9 kB)
    Collecting langchain-core<2.0.0,>=1.2.7 (from langchain)
    Using cached langchain_core-1.2.7-py3-none-any.whl.metadata (3.7 kB)
    Collecting langgraph<1.1.0,>=1.0.7 (from langchain)
    Downloading langgraph-1.0.7-py3-none-any.whl.metadata (7.4 kB)
    Requirement already satisfied: pydantic<3.0.0,>=2.7.4 in d:\\myprojects\\venv\\lib\\site-packages (from langchain) (2.12.5)
    Collecting jsonpatch<2.0.0,>=1.33.0 (from langchain-core<2.0.0,>=1.2.7->langchain)
    Using cached jsonpatch-1.33-py2.py3-none-any.whl.metadata (3.0 kB)
    Requirement already satisfied: langsmith<1.0.0,>=0.3.45 in d:\\myprojects\\venv\\lib\\site-packages (from langchain-core<2.0.0,>=1.2.7->langchain) (0.6.6)
    Collecting packaging<26.0.0,>=23.2.0 (from langchain-core<2.0.0,>=1.2.7->langchain)
    Using cached packaging-25.0-py3-none-any.whl.metadata (3.3 kB)
    Collecting pyyaml<7.0.0,>=5.3.0 (from langchain-core<2.0.0,>=1.2.7->langchain)
    Using cached pyyaml-6.0.3-cp313-cp313-win_amd64.whl.metadata (2.4 kB)
    Collecting tenacity!=8.4.0,<10.0.0,>=8.1.0 (from langchain-core<2.0.0,>=1.2.7->langchain)
    Using cached tenacity-9.1.2-py3-none-any.whl.metadata (1.2 kB)
    Requirement already satisfied: typing-extensions<5.0.0,>=4.7.0 in d:\\myprojects\\venv\\lib\\site-packages (from langchain-core<2.0.0,>=1.2.7->langchain) (4.15.0)
    Requirement already satisfied: uuid-utils<1.0,>=0.12.0 in d:\\myprojects\\venv\\lib\\site-packages (from langchain-core<2.0.0,>=1.2.7->langchain) (0.14.0)
    Collecting jsonpointer>=1.9 (from jsonpatch<2.0.0,>=1.33.0->langchain-core<2.0.0,>=1.2.7->langchain)
    Using cached jsonpointer-3.0.0-py2.py3-none-any.whl.metadata (2.3 kB)
    Collecting langgraph-checkpoint<5.0.0,>=2.1.0 (from langgraph<1.1.0,>=1.0.7->langchain)
    Using cached langgraph_checkpoint-4.0.0-py3-none-any.whl.metadata (4.9 kB)
    Collecting langgraph-prebuilt<1.1.0,>=1.0.7 (from langgraph<1.1.0,>=1.0.7->langchain)
    Downloading langgraph_prebuilt-1.0.7-py3-none-any.whl.metadata (5.2 kB)
    Collecting langgraph-sdk<0.4.0,>=0.3.0 (from langgraph<1.1.0,>=1.0.7->langchain)
    Using cached langgraph_sdk-0.3.3-py3-none-any.whl.metadata (1.6 kB)
    Collecting xxhash>=3.5.0 (from langgraph<1.1.0,>=1.0.7->langchain)
    Using cached xxhash-3.6.0-cp313-cp313-win_amd64.whl.metadata (13 kB)
    Collecting ormsgpack>=1.12.0 (from langgraph-checkpoint<5.0.0,>=2.1.0->langgraph<1.1.0,>=1.0.7->langchain)
    Downloading ormsgpack-1.12.2-cp313-cp313-win_amd64.whl.metadata (3.3 kB)
    Requirement already satisfied: httpx>=0.25.2 in d:\\myprojects\\venv\\lib\\site-packages (from langgraph-sdk<0.4.0,>=0.3.0->langgraph<1.1.0,>=1.0.7->langchain) (0.28.1)
    Requirement already satisfied: orjson>=3.10.1 in d:\\myprojects\\venv\\lib\\site-packages (from langgraph-sdk<0.4.0,>=0.3.0->langgraph<1.1.0,>=1.0.7->langchain) (3.11.5)
    Requirement already satisfied: requests-toolbelt>=1.0.0 in d:\\myprojects\\venv\\lib\\site-packages (from langsmith<1.0.0,>=0.3.45->langchain-core<2.0.0,>=1.2.7->langchain) (1.0.0)
    Requirement already satisfied: requests>=2.0.0 in d:\\myprojects\\venv\\lib\\site-packages (from langsmith<1.0.0,>=0.3.45->langchain-core<2.0.0,>=1.2.7->langchain) (2.32.5)
    Requirement already satisfied: zstandard>=0.23.0 in d:\\myprojects\\venv\\lib\\site-packages (from langsmith<1.0.0,>=0.3.45->langchain-core<2.0.0,>=1.2.7->langchain) (0.25.0)
    Requirement already satisfied: anyio in d:\\myprojects\\venv\\lib\\site-packages (from httpx>=0.25.2->langgraph-sdk<0.4.0,>=0.3.0->langgraph<1.1.0,>=1.0.7->langchain) (4.12.1)
    Requirement already satisfied: certifi in d:\\myprojects\\venv\\lib\\site-packages (from httpx>=0.25.2->langgraph-sdk<0.4.0,>=0.3.0->langgraph<1.1.0,>=1.0.7->langchain) (2026.1.4)
    Requirement already satisfied: httpcore==1.* in d:\\myprojects\\venv\\lib\\site-packages (from httpx>=0.25.2->langgraph-sdk<0.4.0,>=0.3.0->langgraph<1.1.0,>=1.0.7->langchain) (1.0.9)
    Requirement already satisfied: idna in d:\\myprojects\\venv\\lib\\site-packages (from httpx>=0.25.2->langgraph-sdk<0.4.0,>=0.3.0->langgraph<1.1.0,>=1.0.7->langchain) (3.11)
    Requirement already satisfied: h11>=0.16 in d:\\myprojects\\venv\\lib\\site-packages (from httpcore==1.*->httpx>=0.25.2->langgraph-sdk<0.4.0,>=0.3.0->langgraph<1.1.0,>=1.0.7->langchain) (0.16.0)
    Requirement already satisfied: annotated-types>=0.6.0 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3.0.0,>=2.7.4->langchain) (0.7.0)
    Requirement already satisfied: pydantic-core==2.41.5 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3.0.0,>=2.7.4->langchain) (2.41.5)
    Requirement already satisfied: typing-inspection>=0.4.2 in d:\\myprojects\\venv\\lib\\site-packages (from pydantic<3.0.0,>=2.7.4->langchain) (0.4.2)
    Requirement already satisfied: charset_normalizer<4,>=2 in d:\\myprojects\\venv\\lib\\site-packages (from requests>=2.0.0->langsmith<1.0.0,>=0.3.45->langchain-core<2.0.0,>=1.2.7->langchain) (3.4.4)
    Requirement already satisfied: urllib3<3,>=1.21.1 in d:\\myprojects\\venv\\lib\\site-packages (from requests>=2.0.0->langsmith<1.0.0,>=0.3.45->langchain-core<2.0.0,>=1.2.7->langchain) (2.6.3)
    Downloading langchain-1.2.7-py3-none-any.whl (108 kB)
    Downloading langchain_core-1.2.7-py3-none-any.whl (490 kB)
    Downloading jsonpatch-1.33-py2.py3-none-any.whl (12 kB)
    Downloading langgraph-1.0.7-py3-none-any.whl (157 kB)
    Downloading langgraph_checkpoint-4.0.0-py3-none-any.whl (46 kB)
    Downloading langgraph_prebuilt-1.0.7-py3-none-any.whl (35 kB)
    Downloading langgraph_sdk-0.3.3-py3-none-any.whl (67 kB)
    Downloading packaging-25.0-py3-none-any.whl (66 kB)
    Downloading pyyaml-6.0.3-cp313-cp313-win_amd64.whl (154 kB)
    WARNING: Connection timed out while downloading.
    WARNING: Attempting to resume incomplete download (0 bytes/154 kB, attempt 1)
    Downloading pyyaml-6.0.3-cp313-cp313-win_amd64.whl (154 kB)
    Downloading tenacity-9.1.2-py3-none-any.whl (28 kB)
    Downloading jsonpointer-3.0.0-py2.py3-none-any.whl (7.6 kB)
    Downloading ormsgpack-1.12.2-cp313-cp313-win_amd64.whl (117 kB)
    Downloading xxhash-3.6.0-cp313-cp313-win_amd64.whl (31 kB)
    Installing collected packages: xxhash, tenacity, pyyaml, packaging, ormsgpack, jsonpointer, jsonpatch, langgraph-sdk, langchain-core, langgraph-checkpoint, langgraph-prebuilt, langgraph, langchain
    Attempting uninstall: packaging
    Found existing installation: packaging 26.0
    Uninstalling packaging-26.0:
    Successfully uninstalled packaging-26.0
    Successfully installed jsonpatch-1.33 jsonpointer-3.0.0 langchain-1.2.7 langchain-core-1.2.7 langgraph-1.0.7 langgraph-checkpoint-4.0.0 langgraph-prebuilt-1.0.7 langgraph-sdk-0.3.3 ormsgpack-1.12.2 packaging-25.0 pyyaml-6.0.3 tenacity-9.1.2 xxhash-3.6.0

    (venv) D:\\MyProjects>

    步骤 6:验证安装

  • 创建测试文件

  • # test_installation.py
    import sys

    def check_installation():
    try:
    import langchain
    print(f"✅ LangChain 版本: {langchain.__version__}")

    import openai
    print("✅ OpenAI 已安装")

    import chromadb
    print("✅ ChromaDB 已安装")

    print("\\n✅ 所有包安装成功!")
    return True

    except ImportError as e:
    print(f"❌ 导入失败: {e}")
    return False

    if __name__ == "__main__":
    check_installation()

    运行测试

    python test_installation.py

    3. 配置开发环境

    Visual Studio Code 配置

  • 安装 VS Code

    • 下载地址:https://code.visualstudio.com/

  • 推荐扩展

    • Python

    • Jupyter

    • Pylance

    • GitLens

    • Code Runner

  • 配置 Python 解释器

    • 按 Ctrl+Shift+P

    • 输入 "Python: Select Interpreter"

    • 选择虚拟环境中的 Python 路径

  • 配置环境变量

  • 创建 .env 文件

  • # .env
    OPENAI_API_KEY=your_openai_api_key_here
    ANTHROPIC_API_KEY=your_anthropic_api_key_here
    GOOGLE_API_KEY=your_google_api_key_here

    # LangSmith(可选)
    LANGCHAIN_API_KEY=your_langsmith_api_key
    LANGCHAIN_TRACING_V2=true
    LANGCHAIN_PROJECT=your_project_name

         2. 加载环境变量

    # 在 Python 代码中
    from dotenv import load_dotenv
    load_dotenv()

    4. 常见问题解决

    问题 1:pip 安装速度慢

    # 使用国内镜像源
    pip install langchain -i https://pypi.tuna.tsinghua.edu.cn/simple

    # 或永久配置
    pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

    问题 2:权限错误

    # 使用管理员权限运行 PowerShell
    # 或使用用户安装
    pip install –user langchain

    问题 3:依赖冲突

    # 创建新的干净虚拟环境
    python -m venv new_venv
    new_venv\\Scripts\\activate
    pip install langchain

    问题 4:C++ 编译错误(某些包需要)

    # 安装 Visual C++ Build Tools
    # 下载地址:https://visualstudio.microsoft.com/visual-cpp-build-tools/

    5. 快速测试示例

    创建一个简单的 LangChain 应用:

    # quick_test.py
    from langchain.llms import OpenAI
    from langchain.prompts import PromptTemplate
    from langchain.chains import LLMChain
    import os
    from dotenv import load_dotenv

    # 加载环境变量
    load_dotenv()

    # 检查 API 密钥
    if not os.getenv("OPENAI_API_KEY"):
    print("⚠️ 请先设置 OPENAI_API_KEY 环境变量")
    print("在 .env 文件中添加:OPENAI_API_KEY=your_key_here")
    else:
    # 初始化 LLM
    llm = OpenAI(temperature=0.7)

    # 创建模板
    template = """
    请用中文回答以下问题:

    问题:{question}

    回答:
    """

    prompt = PromptTemplate(
    input_variables=["question"],
    template=template
    )

    # 创建链
    chain = LLMChain(llm=llm, prompt=prompt)

    # 运行链
    question = "LangChain 是什么?"
    response = chain.run(question)

    print(f"问题:{question}")
    print(f"回答:{response}")

    运行测试:

    python quick_test.py

    6. 下一步

    现在你已经成功安装了 LangChain,接下来可以:

  • 学习 LangChain 核心概念(Chains, Agents, Memory 等)

  • 尝试不同的 LLM 提供商

  • 构建你的第一个 LangChain 应用

  • 学习如何使用向量数据库和 RAG

  • 赞(0)
    未经允许不得转载:171主机测评 » LangChain 实战系列(一) —— 在 Windows 上安装 LangChain 的详细步骤
    分享到: 更多 (0)

    评论 抢沙发

    • 昵称 (必填)
    • 邮箱 (必填)
    • 网址