导入unstructured.partition.pdf时内核崩溃的解决方法咨询
解决unstructured partition_pdf导致内核崩溃的问题
问题详情
执行以下PDF解析代码时内核持续崩溃:
from unstructured.partition.pdf import partition_pdf path = 'data/llama.pdf' raw_pdf_elements=partition_pdf( filename=path, extract_images_in_pdf=True, infer_table_structure=True, chunking_strategy="by_title", max_characters=4000, new_after_n_chars=3800, combine_text_under_n_chars=2000, image_outpur_dir_path='images/' )
最初遇到tesseract路径问题,执行pip install tesseract和pip install tesseract-ocr后,内核开始崩溃,退出信息:
> 00:01:01.922 [error] Disposing session as kernel process died > ExitCode: undefined, Reason: 00:01:01.922 [info] Dispose Kernel > process 35807. 00:01:01.945 [info] End cell 98 execution after > -1709672459.206s, completed @ undefined, started @ 1709672459206
解决方案
1. 卸载错误安装的无效包
pip仓库中的tesseract和tesseract-ocr并非官方Tesseract工具包,会引发依赖冲突,先彻底卸载:
pip uninstall -y tesseract tesseract-ocr
2. 安装正确的Tesseract依赖
Tesseract是系统级工具,需先安装本体,再安装Python绑定:
- Linux(Ubuntu/Debian):
sudo apt-get install tesseract-ocr - macOS:
brew install tesseract - Windows:手动下载官方安装包完成安装,之后将Tesseract的执行路径添加到系统环境变量
PATH中。
接着安装Python绑定及unstructured的PDF支持组件:
pip install pytesseract unstructured[pdf]
3. 修正代码拼写错误
代码中image_outpur_dir_path是拼写错误,改为image_output_dir_path,避免参数解析异常。
4. 降低内存占用(针对大PDF场景)
若处理的是大体积PDF,过多chunking参数可能导致内存过载:
- 先简化代码测试基础功能:
from unstructured.partition.pdf import partition_pdf path = 'data/llama.pdf' raw_pdf_elements=partition_pdf( filename=path, extract_images_in_pdf=True, infer_table_structure=True, image_output_dir_path='images/' ) - 若仍崩溃,可增加Jupyter内核的内存分配,或拆分PDF后分段处理。
5. 手动指定Tesseract路径(可选)
如果系统无法自动识别Tesseract路径,在代码中手动指定:
import pytesseract # 替换为你的Tesseract实际路径 pytesseract.pytesseract.tesseract_cmd = r'/usr/bin/tesseract' # Linux/macOS # pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe' # Windows
内容的提问来源于stack exchange,提问作者Sevval Kahraman
相关产品推荐
相关产品推荐

