M1 MacBook Pro上Pytesseract加载语言文件失败求助
解决M1 MacBook Pro上pytesseract语言文件加载失败问题
根据你给出的报错信息,核心问题是tesseract无法在指定路径找到eng.traineddata,结合你的操作,以下是针对性的解决方案:
1. 修正TESSDATA_PREFIX的路径设置
你当前设置的TESSDATA_PREFIX=/opt/homebrew/share/是错误的,tesseract会直接在这个路径下查找语言文件,但实际文件存放在/opt/homebrew/share/tessdata/子目录中,所以需要调整路径:
- 打开zsh配置文件:
open ~/.zshrc - 将原有的
export TESSDATA_PREFIX=/opt/homebrew/share/修改为:export TESSDATA_PREFIX=/opt/homebrew/share/tessdata/ - 重新加载配置:
source ~/.zshrc - 验证设置:执行
echo $TESSDATA_PREFIX,确认输出为/opt/homebrew/share/tessdata/
2. 确保conda环境继承环境变量
conda默认会隔离系统环境变量,即使你在zshrc中设置了变量,conda环境可能无法读取到,可通过以下两种方式解决:
方法一:临时在conda环境中设置
- 激活你的conda环境:
conda activate your_env_name - 手动设置环境变量:
export TESSDATA_PREFIX=/opt/homebrew/share/tessdata/ - 运行你的pytesseract代码测试
方法二:永久为conda环境配置变量
- 激活目标环境后,执行:
conda env config vars set TESSDATA_PREFIX=/opt/homebrew/share/tessdata/ - 重新激活环境使设置生效:
conda deactivate && conda activate your_env_name - 验证:在环境中执行
echo $TESSDATA_PREFIX确认路径正确
3. 验证tesseract本身的语言配置
先排除tesseract引擎本身的问题,在终端执行:
tesseract --list-langs
如果能正常列出eng等语言,说明tesseract配置正确,问题仅出在pytesseract的调用环境;如果仍然报错,确认/opt/homebrew/share/tessdata/eng.traineddata文件存在,且brew安装的tesseract路径正确。
4. 手动指定pytesseract的tesseract路径(可选)
如果conda环境中的pytesseract无法找到brew安装的tesseract可执行文件,可在代码中直接指定路径:
import pytesseract # 指定brew安装的tesseract路径 pytesseract.pytesseract.tesseract_cmd = '/opt/homebrew/bin/tesseract'
内容的提问来源于stack exchange,提问作者Sashaank
相关产品推荐
相关产品推荐

