M1 Max MacBook Pro上Pytesseract图片转文本失败求助
问题描述
- 设备:M1 Max MacBook Pro
- 已通过Mac终端安装brew和Tesseract(版本5.2.0),重复安装提示已存在
- 开发环境:PyCharm,Python版本3.7
- 问题:运行代码仅输出“Running on Mac”后结束,无法将源码目录中的
unnamed.png转为文本
运行代码
from PIL import Image import enum class OS(enum.Enum): Mac = 0 Windows = 1 class Language(enum.Enum): ENG = 'eng' RUS = 'rus' ITA = 'ita' class ImageReader: def __init__(self, os: OS): if os == OS.Mac: print("Running on Mac") def extractText(self, image: str) -> str: img = Image.open(image) text = pytesseract.image_to_string(img) return text if __name__ == '__main__': pytesseract.tesseract_cmd = r'/opt/homebrew/Cellar/tesseract/5.2.0/bin/tesseract' ir = ImageReader(OS.Mac) text = ir.extractText('unnamed.png') print(text)
运行输出
/Users/ritessshhh/PycharmProjects/Tello_course/venv/bin/python /Users/ritessshhh/PycharmProjects/handtracking/test.py Running on Mac Process finished with exit code 0
问题排查与解决步骤
1. 补全缺失的库导入
代码中使用了pytesseract但未导入,这是核心问题。在代码开头添加:
import pytesseract
2. 验证Tesseract命令路径
虽然指定了tesseract_cmd,优先用brew默认的软链接路径更稳定,替换为:
pytesseract.tesseract_cmd = r'/opt/homebrew/bin/tesseract'
也可在终端先确认路径有效性:
ls /opt/homebrew/Cellar/tesseract/5.2.0/bin/tesseract
3. 检查图片读取状态
在extractText方法中添加异常捕获,确认图片是否能正常读取:
def extractText(self, image: str) -> str: try: img = Image.open(image) print(f"成功打开图片:{image},尺寸:{img.size}") text = pytesseract.image_to_string(img) return text except Exception as e: print(f"出错信息:{e}") return ""
4. 确认虚拟环境依赖
确保PyCharm使用的虚拟环境已安装必要依赖:
# 激活虚拟环境后执行 pip install pytesseract pillow
5. 终端测试Tesseract功能
直接在终端运行命令验证工具本身是否正常:
tesseract unnamed.png output.txt cat output.txt
如果终端也无法识别,可能是图片清晰度、字体问题,可尝试指定语言参数:
text = pytesseract.image_to_string(img, lang='eng')
内容的提问来源于stack exchange,提问作者Ritesh Chavan
相关产品推荐
相关产品推荐

