macOS M1环境下导入tesserocr遇ImportError:缺失Tesseract符号
解决macOS M1上Python 3.8使用tesserocr的ImportError问题
问题根源
这个错误是因为tesserocr编译时链接的tesseract库架构(arm64/x86_64)与当前Python环境的架构不匹配,或者tesserocr和tesseract版本不兼容导致符号缺失。M1 Mac的Rosetta 2转译机制可能会加剧这种架构冲突。
解决方案步骤
1. 确认环境架构一致性
先检查Python和tesseract的运行架构:
# 查看Python架构 python3.8 -c "import platform; print(platform.machine())" # 查看tesseract架构 file $(which tesseract)
如果两者架构不一致(比如Python是x86_64,tesseract是arm64),就需要统一架构后重新安装。
2. 统一架构并重装依赖
方式一:基于Rosetta 2的x86_64环境
- 找到「终端」应用,右键选择「显示简介」,勾选「使用Rosetta打开」,重启终端。
- 在该终端内重新创建Python 3.8虚拟环境:
python3.8 -m venv venv source venv/bin/activate - 卸载现有tesserocr:
pip uninstall -y tesserocr - 重装x86_64版本的tesseract:
brew uninstall tesseract brew install tesseract --build-from-source - 指定tesseract路径安装tesserocr:
pip install tesserocr --install-option="--tesseract-dir=$(brew --prefix tesseract)"
方式二:arm64原生环境
- 确保终端未启用Rosetta(取消「使用Rosetta打开」选项)。
- 确认Python 3.8是arm64版本,若不是,可通过pyenv安装适配版本:
# 先确保pyenv为arm64架构 pyenv install 3.8.16 pyenv local 3.8.16 - 卸载现有依赖:
pip uninstall -y tesserocr brew uninstall tesseract - 重装arm64版本的tesseract:
brew install tesseract - 重新安装tesserocr,或直接从源码编译:
pip install tesserocr --install-option="--tesseract-dir=$(brew --prefix tesseract)" # 源码编译安装备选命令 pip install git+https://github.com/sirfz/tesserocr.git
3. 验证安装结果
激活虚拟环境后,运行以下代码测试:
import tesserocr print(tesserocr.tesseract_version()) # 输出tesseract版本则说明安装成功
额外注意事项
- 确保
tesseract和tesserocr版本兼容,建议安装最新稳定版的tesseract(目前为5.x系列),对应适配的tesserocr版本。 - 若使用pyenv管理Python版本,需保证pyenv本身为arm64架构,避免安装的Python为x86_64版本。
内容的提问来源于stack exchange,提问作者Jim Khan
相关产品推荐
相关产品推荐

