Databricks环境中Langchain及Langchain_openAI导入报错求助
Langchain导入错误解决(Databricks集群环境)
问题描述
运行以下代码时出现依赖相关的导入错误:
from langchain.schema import HumanMessage, SystemMessage from langchain_openai import ChatOpenAI
错误分两个阶段出现:
- 仅安装
langchain和langchain_openai后,执行from langchain.schema import HumanMessage, SystemMessage抛出:TypeError: issubclass() arg 1 must be a class - 参考网络方案安装
typing-inspect==0.8.0和typing_extensions==4.5.0后,执行from langchain_openai import ChatOpenAI抛出:ImportError: cannot import name 'Iterator' from 'typing_extensions'
运行环境
使用的Databricks集群:
- 集群1:Runtime 13.2 ML(含Apache Spark 3.4.0、GPU、Scala 2.12),节点类型Standard_NC21s_v3
- 集群2:Runtime 12.2 LTS ML(含Apache Spark 3.3.2、Scala 2.12),节点类型Standard_DS5_v2
解决方案
问题根源
Databricks ML Runtime预安装的typing_extensions版本与Langchain依赖的版本不兼容,手动安装的第三方版本进一步加剧了冲突。
修复步骤
- 清理冲突依赖:先卸载手动安装的冲突包:
pip uninstall -y typing-inspect typing_extensions - 安装适配版本:根据集群Runtime版本选择对应的兼容包版本:
- 对于Runtime 12.2 LTS ML:
pip install typing-inspect==0.7.1 typing_extensions==4.1.1 - 对于Runtime 13.2 ML:
pip install typing-inspect==0.9.0 typing_extensions==4.7.1
- 对于Runtime 12.2 LTS ML:
- 验证修复:重新运行导入代码,确认错误消失。
额外提示
如果在Databricks笔记本中操作,建议添加--force-reinstall参数确保彻底替换冲突版本:
pip install --force-reinstall typing-inspect==<对应版本> typing_extensions==<对应版本>
内容的提问来源于stack exchange,提问作者Dolev Mitz
相关产品推荐
相关产品推荐

