1. 问题背景与现象分析
最近在本地开发环境中使用LangChain框架时遇到了一个典型问题:系统提示找不到langchain.prompts模块,而实际上代码中确实正确引用了这个包。这种情况在使用AI开发框架时并不少见,特别是当框架处于快速迭代阶段时。
具体报错信息通常表现为:
code复制ModuleNotFoundError: No module named 'langchain.prompts'
或者
code复制ImportError: cannot import name 'PromptTemplate' from 'langchain.prompts'
这个问题特别容易出现在以下场景:
- 同时使用本地Ollama模型和LangChain框架
- 项目环境中安装了多个不同版本的LangChain相关包
- 使用了较新的LangChain版本但代码是基于旧版API编写的
需要模型API调用? 免费领10W Token,多模型网关一键接入 Claude、DeepSeek 等主流模型。
2. 问题根源深度解析
2.1 LangChain的模块结构调整
LangChain作为一个快速发展的AI应用框架,其模块结构在0.1.x版本后进行了重大调整。原先集成在核心包中的许多功能被拆分到了子包中,这是导致PromptTemplate导入失败的根本原因。
具体变化包括:
langchain.prompts→langchain_core.promptslangchain.llms→langchain_community.llmslangchain.chains→langchain_core.chains
这种模块化重构虽然提高了框架的可维护性,但也带来了版本兼容性问题。
2.2 依赖冲突分析
另一个常见原因是依赖冲突。当环境中同时存在以下包时,容易出现版本不匹配:
langchain(核心框架)langchain-openai(OpenAI集成)langchain-ollama(Ollama本地模型集成)langchain-community(社区贡献的集成)
这些包如果版本不协调,就会导致模块导入失败。特别是当使用pip install langchain安装了最新版,但其他相关包还停留在旧版本时。
