如何修复Python图片转文本程序中的Tesseract路径相关错误?
解决Tesseract无法加载语言包的路径问题
从你的错误日志能直接定位到问题:Tesseract找不到英文训练数据文件eng.traineddata,核心原因是未正确设置TESSDATA_PREFIX环境变量——这个变量需要指向tessdata目录的父文件夹(也就是Tesseract的安装根目录)。
问题拆解
错误里的关键提示已经说得很明确:
Please make sure the TESSDATA_PREFIX environment variable is set to the parent directory of your "tessdata" directory. Failed loading language 'eng'
你的Tesseract安装在C:\Program Files (x86)\Tesseract-OCR,对应的tessdata目录就嵌套在这个路径下,所以TESSDATA_PREFIX必须指向这个根安装目录。
具体解决方案
方案1:在代码中临时设置(快速测试)
在Python代码里添加环境变量配置,放在导入pytesseract之后即可:
try: from PIL import Image except ImportError: import Image import pytesseract import os # 配置Tesseract命令路径 pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe' # 设置TESSDATA_PREFIX指向安装根目录 os.environ['TESSDATA_PREFIX'] = r'C:\Program Files (x86)\Tesseract-OCR' # 注意图片路径前加r,避免转义字符解析错误 image1 = Image.open(r"C:\python\program\image.png") # 显式指定语言参数,避免默认语言识别异常 print(pytesseract.image_to_string(image1, lang='eng'))
方案2:配置系统永久环境变量(推荐)
如果不想每次写代码都重复设置,可以在Windows系统中配置永久环境变量:
- 右键「此电脑」→「属性」→「高级系统设置」→「环境变量」
- 在「系统变量」区域点击「新建」:
- 变量名:
TESSDATA_PREFIX - 变量值:
C:\Program Files (x86)\Tesseract-OCR
- 变量名:
- 保存后重启你的Python编辑器/终端,让环境变量生效。
额外验证步骤
确认C:\Program Files (x86)\Tesseract-OCR\tessdata目录下存在eng.traineddata文件。如果没有,要么重新安装Tesseract(安装时勾选英文语言包),要么下载对应训练数据放到该目录。
内容的提问来源于stack exchange,提问作者Mehul Jadav
相关产品推荐
相关产品推荐

