使用Haystack 2.17.1构建RAG项目时,haystack.nodes模块导入失败求助
Haystack 2.x 导入路径错误解决方案
你遇到的ModuleNotFoundError是因为用了Haystack 1.x的导入写法,但你的项目依赖的是Haystack 2.x(haystack-ai>=2.17.1),两个版本的模块结构完全不一样。
正确的导入代码
把你原来的nodes相关导入全部替换成下面的写法:
import os import requests from haystack import Pipeline, Document # 保留Chroma的导入 from haystack_integrations.document_stores.chroma import ChromaDocumentStore # 替换原nodes下的组件导入 from haystack.components.retrievers import InMemoryEmbeddingRetriever # 对应原EmbeddingRetriever from haystack.components.generators import HuggingFaceLocalGenerator # 对应原HuggingFaceTextGenerator from haystack.components.preprocessors import DocumentSplitter # 对应原PreProcessor
关键说明
- Haystack 2.x彻底重构了模块结构,把原来1.x里的
haystack.nodes拆分成了haystack.components、haystack.document_stores等独立模块 - 如果需要嵌入模型相关组件,还要额外导入嵌入器:
from haystack.components.embedders import SentenceTransformersDocumentEmbedder, SentenceTransformersTextEmbedder
确认依赖安装
可以用UV命令检查haystack-ai的安装情况,确保版本正确:
uv pip show haystack-ai
内容的提问来源于stack exchange,提问作者femi
相关产品推荐
相关产品推荐

