M1芯片Mac安装TensorFlow时termcolor构建失败如何解决
问题根因
该问题和termcolor包对M1 Silicon的适配性无关,核心故障是你创建的osx-arm64架构conda环境缺失匹配版本的libffi动态依赖库:Python内置的ctypes模块加载时找不到libffi.7.dylib动态库,所有依赖ctypes的操作(包括termcolor构建wheel、tensorflow导入)都会连带报错。
你反复卸载重装termcolor无法解决问题,是因为故障点在Python底层依赖层,和termcolor包本身没有关系。
修复操作
按顺序执行以下命令即可修复:
- 激活你创建的目标conda环境,安装版本匹配的libffi依赖:
conda install libffi=3.3 -c conda-forge
注意:请勿安装3.4及以上版本的libffi,高版本libffi对应的动态库文件名为
libffi.8.dylib,和Python 3.9编译时依赖的libffi.7.dylib版本不兼容,安装后依然会触发找不到库的报错。
- 验证依赖修复状态:在当前环境的Python交互环境中执行
import ctypes,无报错即代表底层依赖恢复正常。 - 重新执行剩余安装步骤:
pip3 install --force-reinstall tensorflow-macos tensorflow-metal termcolor
安装避坑提示
- 创建conda环境时使用了
--override-channels参数仅指定conda-forge源,后续安装conda侧依赖时请勿混用defaults源的包,否则极易出现动态库版本不匹配的链接错误。 - TensorFlow依赖的底层适配包
tensorflow-deps必须通过conda从apple源安装,不要用pip安装这类底层系统依赖,否则也容易触发类似的动态库加载故障。
内容的提问来源于stack exchange,提问作者Narusan
相关产品推荐
相关产品推荐

