使用LangChain的DirectoryLoader加载PDF时遇Image模块找不到错误
解决DirectoryLoader加载PDF时出现的ModuleNotFoundError: No module named 'Image'
问题分析
你遇到的错误来自python-pptx库的导入逻辑,它尝试导入Image模块,但这个模块实际属于Pillow库(而非你安装的废弃Image包)。单独使用UnstructuredPDFLoader时未触发该错误,大概率是单文件加载未触发处理图片/嵌入对象的逻辑,而目录批量加载时触发了相关依赖调用。
解决方案
1. 安装正确的图像处理库
你之前执行的pip install Image安装的是已废弃的包,正确的做法是安装Pillow:
pip install pillow
2. 更新python-pptx到兼容版本
旧版python-pptx使用了过时的PIL导入方式,更新库可修复该问题:
pip install --upgrade python-pptx
3. 为DirectoryLoader指定明确的Loader类
确保DirectoryLoader使用UnstructuredPDFLoader处理PDF文件,避免默认loader触发不必要的依赖:
from langchain.document_loaders import DirectoryLoader, UnstructuredPDFLoader loader = DirectoryLoader('source', glob='*.pdf', loader_cls=UnstructuredPDFLoader) data = loader.load()
4. 检查目录内的PDF文件
确认source目录下的所有PDF文件都能正常解析,部分包含复杂嵌入对象(如PPT转换的PDF)可能会触发额外依赖处理,可先移除可疑文件测试。
内容的提问来源于stack exchange,提问作者Ravi Prakash
相关产品推荐
相关产品推荐

