Mac M1芯片安装tokenizers后导入提示架构不兼容如何解决
问题根因
安装日志显示拉取的是标注macosx_12_0_arm64的whl包,但导入时提示二进制文件为x86_64架构、需要arm64e架构,核心原因有两个:
- 当前运行pip的终端进程通过Rosetta 2转译执行,pip本身是x86版本,安装过程中实际写入的二进制文件和arm64环境的要求不匹配
- 本地pip缓存残留了之前x86环境下下载的错架构安装包,安装时被错误复用
修复步骤
按顺序执行以下操作即可解决:
- 先卸载当前环境中安装错误的tokenizers版本:
pip uninstall -y tokenizers - 校验终端运行架构:终端执行
arch命令,若输出为i386,说明终端正以Rosetta转译模式运行。此时关闭终端,在访达的应用程序列表中找到终端App,右键选择「显示简介」,取消勾选「使用Rosetta打开」选项,重启终端后重新激活你的tfconda环境。 - 清空pip本地缓存,避免历史错版本安装包被重复调用:
pip cache purge - 优先通过conda-forge源安装原生适配M系列芯片的版本,兼容性最好:
conda install -c conda-forge tokenizers
如果坚持使用pip安装,执行无缓存强制重装命令:pip install tokenizers --force-reinstall --no-cache-dir
若上述pip命令仍报架构错误,直接执行源码编译安装,会自动适配当前环境的arm64架构:pip install tokenizers --no-binary :all: - 安装完成后进入Python交互环境,执行
import tokenizers验证,无报错即为修复成功。如果仍出现架构不兼容提示,说明你当前安装的miniforge本身是x86移植版本,重装arm64版本的miniforge后重建虚拟环境即可。
内容的提问来源于stack exchange,提问作者trialcritic
相关产品推荐
相关产品推荐

