Mac OS X下Python 2.7运行OCR脚本报错求助
问题诊断与修复方案
从你的描述来看,虽然已经安装了相关Python库,但脚本第二行报错大概率和底层OCR引擎缺失、导入语句混淆或者路径配置错误有关,下面是具体的排查和修复步骤:
1. 先确认Tesseract OCR本体是否安装
pytesseract只是Python的封装工具,它本身不包含OCR识别核心,必须依赖底层的Tesseract软件。Mac OS X默认没有预装这个,你需要通过Homebrew来安装:
brew install tesseract
安装完成后,在终端输入tesseract --version,如果能输出版本信息,说明引擎安装成功。
2. 修正Python导入语句(适配Python 2.7 + Pillow环境)
Python 2.7中,Pillow作为旧PIL库的替代分支,正确的导入方式应该是:
from PIL import Image
如果你的脚本第二行是import Image,这会导致Python尝试寻找旧版PIL库(可能你安装的Pillow没有正确覆盖旧路径),换成from PIL import Image就能解决导入类找不到的错误。
3. 手动指定Tesseract路径(如果安装后仍报错)
如果已经装了Tesseract,但pytesseract还是提示找不到引擎,你需要在脚本里手动指定Tesseract的安装路径:
import pytesseract # Homebrew默认安装路径是/usr/local/bin/tesseract,可根据实际情况修改 pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract'
4. 验证版本兼容性
虽然你用的Pillow 5.0.0和pytesseract 0.2.0理论上支持Python 2.7,但还是建议做下版本校验:
- 运行
pip list查看已安装库的版本,确认没有版本冲突 - 如果还是有问题,可以尝试降级Pillow到4.x版本(比如4.3.0),因为5.x版本对Python2.7的支持已经逐渐弱化
最后给你一个完整的测试脚本示例:
from PIL import Image import pytesseract # 按需指定Tesseract路径 pytesseract.pytesseract.tesseract_cmd = '/usr/local/bin/tesseract' # 加载图片并提取文本 img = Image.open('你的图片路径.png') extracted_text = pytesseract.image_to_string(img) print(extracted_text)
内容的提问来源于stack exchange,提问作者curious_cosmo
相关产品推荐
相关产品推荐

