Win7系统下Tesseract路径配置错误问题求助
解决Win7下Tesseract路径配置导致的训练数据文件找不到问题
我之前在Windows环境下配置pytesseract时也踩过类似的路径转义和参数传递的坑,你的问题主要有两个关键点:
- 你定义了
tessdata_dir_config但没有在调用OCR方法时传入这个配置,导致Tesseract还是用默认路径去查找训练数据; - Python字符串里的路径转义和Tesseract命令行参数的格式冲突,导致路径解析丢失了盘符前缀。
修正后的完整代码
from PIL import Image import pytesseract # 用原始字符串设置tesseract.exe路径,避免转义混乱 pytesseract.pytesseract.tesseract_cmd = r'C:\Program Files (x86)\Tesseract-OCR\tesseract.exe' # 同样用原始字符串定义训练数据目录配置,路径用双引号包裹处理空格 tessdata_dir_config = r'--tessdata-dir "C:\Program Files (x86)\Tesseract-OCR\tessdata"' myFile = r"D:\temp\OCR\rightness_of_rendering.tif" # 关键:调用image_to_string时必须传入config参数 print(pytesseract.image_to_string(Image.open(myFile), config=tessdata_dir_config))
几个重要的细节说明
- 原始字符串(r前缀)的使用:Windows路径里的反斜杠
\在Python字符串中默认是转义字符,用r前缀可以让字符串里的反斜杠直接被当作路径分隔符,避免出现转义错误。 - 路径中的空格处理:因为你的路径包含
Program Files (x86)这种带空格的目录,所以在命令行参数里必须用双引号把路径括起来,否则Tesseract会把空格后的内容当成新的命令参数。 - 必须传递config参数:
tessdata_dir_config只是定义了命令行参数,只有把它传给image_to_string的config参数,Tesseract才会使用你指定的训练数据目录。
最后再确认一下:
eng.traineddata确实存在于C:\Program Files (x86)\Tesseract-OCR\tessdata目录下;- 文件名称没有拼写错误(比如不要写成
eng.train.data或者少了后缀)。
内容的提问来源于stack exchange,提问作者Ghoul Fool
相关产品推荐
相关产品推荐

