已安装InstructorEmbedding仍报依赖缺失错误的技术求助
问题解决:InstructorEmbedding依赖缺失导致ImportError
问题描述
在Jupyter Notebook环境(Python 3.12/3.11)中,已安装InstructorEmbedding库,但运行以下代码时持续出现ImportError,重启内核无效:
import torch from langchain.embeddings import HuggingFaceInstructEmbeddings DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu" embedding = HuggingFaceInstructEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2", model_kwargs={"device": DEVICE})
报错信息
--------------------------------------------------------------------------- ModuleNotFoundError Traceback (most recent call last) File /opt/conda/lib/python3.11/site-packages/langchain_community/embeddings/huggingface.py:151, in HuggingFaceInstructEmbeddings.__init__(self, **kwargs) 150 try: ---> 151 from InstructorEmbedding import INSTRUCTOR 153 self.client = INSTRUCTOR( 154 self.model_name, cache_folder=self.cache_folder, **self.model_kwargs 155 ) File /opt/conda/lib/python3.11/site-packages/InstructorEmbedding/__init__.py:1 ----> 1 from .instructor import * File /opt/conda/lib/python3.11/site-packages/InstructorEmbedding/instructor.py:9 8 from torch import Tensor, device ----> 9 from sentence_transformers import SentenceTransformer 10 from sentence_transformers.models import Transformer ModuleNotFoundError: No module named 'sentence_transformers' The above exception was the direct cause of the following exception: ImportError Traceback (most recent call last) Cell In[2], line 10 4 DEVICE = "cuda:0" if torch.cuda.is_available() else "cpu" 6 #loader = PyPDFDirectoryLoader("aircraft_pdfs") 7 #docs = loader.load() 8 #print(len(docs)) # length of all pages together ---> 10 embedding = HuggingFaceInstructEmbeddings(model_name="sentence-transformers/all-MiniLM-L6-v2", model_kwargs={"device": DEVICE}) File /opt/conda/lib/python3.11/site-packages/langchain_community/embeddings/huggingface.py:157, in HuggingFaceInstructEmbeddings.__init__(self, **kwargs) 153 self.client = INSTRUCTOR( 154 self.model_name, cache_folder=self.cache_folder, **self.model_kwargs 155 ) 156 except ImportError as e: ---> 157 raise ImportError("Dependencies for InstructorEmbedding not found.") from e ImportError: Dependencies for InstructorEmbedding not found.
当前已安装包(pip freeze部分输出)
transformers==4.37.2 torch==2.2.0 langchain==0.1.6 InstructorEmbedding==1.0.1 ...
解决方案
从报错栈可知,InstructorEmbedding内部依赖sentence_transformers库,但当前环境未安装该包,导致模块找不到。执行以下命令安装缺失依赖:
pip install sentence-transformers
安装完成后,重启Jupyter内核,重新运行代码即可解决问题。
内容的提问来源于stack exchange,提问作者CSe
相关产品推荐
相关产品推荐

