You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

调用pytesseract触发AttributeError:无pytesseract属性如何解决

报错核心原因

触发该错误有两个直接诱因:

  1. 导入语句不完整:代码仅从pytesseract中导入了image_to_string方法,未导入pytesseract主模块,无法访问模块下的配置属性
  2. 属性路径写法错误:多数旧教程标注的pytesseract.pytesseract.tesseract_cmd路径不符合新版本pytesseract的导出结构,多写了一层.pytesseract层级,自然找不到对应属性

另外原代码里的Windows路径未做转义处理,C:\Program Files\...中的\t会被Python识别为制表符转义符,就算属性问题修复后也可能出现找不到Tesseract程序的问题。

修复方案

按以下步骤调整代码即可:

  • 补充导入pytesseract主模块
  • 把tesseract_cmd的配置路径修正为pytesseract.tesseract_cmd,去掉多余的层级
  • 路径字符串前加r前缀标记为原始字符串,避免反斜杠转义问题
  • 可选增加图片读入判空逻辑,避免图片路径错误触发无意义的后续报错
修正后完整可运行代码
import cv2
import pytesseract
from pytesseract import image_to_string

# 配置Tesseract可执行文件路径,r前缀避免转义
pytesseract.tesseract_cmd = r'C:\Program Files\Tesseract-OCR\tesseract.exe'

img = cv2.imread("download.png")
# 校验图片是否读取成功
if img is None:
    raise RuntimeError("图片读取失败,请检查download.png是否和脚本在同一路径下")
print('image is', img)

gry = cv2.cvtColor(img, cv2.COLOR_BGR2GRAY)
(h, w) = gry.shape[:2]
gry = cv2.resize(gry, (w*2, h*2))
cls = cv2.morphologyEx(gry, cv2.MORPH_CLOSE, None)
thr = cv2.threshold(cls, 0, 255, cv2.THRESH_BINARY | cv2.THRESH_OTSU)[1]

txt = image_to_string(thr)
print(txt)
补充排查项

如果修正代码后仍无法正常运行,可逐一排查以下问题:

  • 打开命令提示符,执行"C:\Program Files\Tesseract-OCR\tesseract.exe" --version,确认Tesseract程序本身可正常启动,没有缺失运行库
  • 如果需要识别中文文本,需要提前安装Tesseract中文简体语言包,并在调用image_to_string时传入参数lang='chi_sim'
  • 执行pip install --upgrade pytesseract将pytesseract库升级到最新稳定版,避免旧版本兼容问题

内容的提问来源于stack exchange,提问作者anish

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 19:57:22