Python 3.11中tokenizers库架构不兼容ImportError问题求助
错误信息
ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tokenizers/tokenizers.cpython-311-darwin.so, 0x0002): tried: '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tokenizers/tokenizers.cpython-311-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64')), '/System/Volumes/Preboot/Cryptexes/OS/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tokenizers/tokenizers.cpython-311-darwin.so' (no such file), '/Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/tokenizers/tokenizers.cpython-311-darwin.so' (mach-o file, but is an incompatible architecture (have 'x86_64', need 'arm64'))
环境详情
- Python版本:3.11
- 操作系统:M1 macOS Sonoma 14.1.1
已尝试的无效步骤
- 更新transformers和tokenizers至最新版本
- 检查Python 3.11与库的兼容性
- 卸载并重新安装tokenizers库
解决方案
1. 确认Python运行架构
先执行以下命令,验证当前Python解释器的架构:
python3 -c "import platform; print(platform.machine())"
如果输出为x86_64,说明你使用的是Rosetta转译的Python版本,需要卸载后重新安装原生arm64架构的Python 3.11。
2. 重新安装适配arm64的依赖
如果Python是arm64架构,先彻底清理现有依赖:
pip uninstall -y tokenizers transformers
升级pip后重新安装,确保拉取arm64版本的预编译包:
pip install --upgrade pip pip install transformers tokenizers
3. 从源码编译tokenizers(预编译包仍不兼容时)
若上述步骤无效,手动编译适配arm64的tokenizers:
- 安装编译依赖Rust:
brew install rust
- 克隆源码并进入Python绑定目录:
git clone https://github.com/huggingface/tokenizers.git cd tokenizers/bindings/python
- 编译并安装:
pip install .
4. 检查pip兼容标签
执行以下命令查看pip支持的架构标签:
pip debug --verbose
确认输出的Compatible tags列表中包含cp311-cp311-macosx_11_0_arm64或类似arm64相关标签。如果没有,说明pip是x86架构,需重新安装arm64版本的Python以匹配系统架构。
内容的提问来源于stack exchange,提问作者Arnav

