使用Docling调用Tesseract OCR的PyTessBaseAPI初始化失败求助
明确指定tessdata路径
Tesseract可能无法自动识别语言文件位置,需在代码中显式指定:pipeline_options.ocr_options = TesseractOcrOptions( tessdata_dir="/path/to/your/tessdata" # 替换为实际的tessdata目录路径 )也可设置系统环境变量
TESSDATA_PREFIX指向你的tessdata目录(Windows设为系统变量,Linux/macOS在终端执行export TESSDATA_PREFIX=/path/to/tessdata)。校验语言文件的正确性
确保语言文件名完全符合规范:法语对应fra.traineddata、德语deu.traineddata、英语eng.traineddata、奥里亚语ori.traineddata(注意你写的odu大概率是笔误,正确语言代码为ori)。同时确认文件是Tesseract 5.x兼容版本,建议下载官方适配5.x的语言包。匹配tesserocr与Tesseract版本
Python 3.12属于较新版本,需确保安装的tesserocr支持该版本且与Tesseract 5.3.4兼容。尝试重新安装最新版:pip install --upgrade tesserocr若安装失败,可针对你的系统下载对应预编译包(比如Windows用非官方编译包,Linux/macOS用系统包管理器安装匹配版本)。
显式设置OCR语言参数
在代码中明确指定要加载的语言,避免依赖默认值:pipeline_options.ocr_options = TesseractOcrOptions( lang="fra+deu+eng+ori" # 修正odu为ori,多语言用+分隔 )验证Tesseract系统级可用性
打开终端/命令行执行以下命令,确认Tesseract能正常运行:tesseract --version tesseract --list-langs若
--list-langs能显示你添加的语言,说明系统层面配置正常;若不能,检查PATH环境变量是否包含Tesseract安装目录,或重新安装Tesseract。隔离测试tesserocr基础功能
编写简单测试脚本,跳过docling直接测试tesserocr,排查是否为docling配置问题:import tesserocr from PIL import Image # 初始化API并指定语言和tessdata路径 with tesserocr.PyTessBaseAPI(lang='fra+deu+eng+ori', path='/path/to/tessdata') as api: api.SetImage(Image.open('test_scan.png')) # 替换为你的测试图片路径 print(api.GetUTF8Text())若该脚本正常运行,说明问题出在docling配置;若仍报错,聚焦Tesseract和tesserocr的环境配置排查。
内容的提问来源于stack exchange,提问作者Paul Gibson

