M1芯片Miniforge环境导入TensorFlow 2.6.0出现protobuf相关AttributeError如何解决
问题根因
- 该报错由protobuf版本与TensorFlow版本不兼容导致:TensorFlow 2.6.0仅支持protobuf 3.9.0至3.18.0区间的版本,你当前环境安装的protobuf 3.19.1超出了兼容范围,同时系统全局protoc 3.15.8与虚拟环境内protobuf版本不一致也会触发该类属性缺失错误。
解决方案
按以下顺序操作即可修复:
- 激活你当前使用的Miniforge虚拟环境,执行命令降级protobuf到匹配版本:
pip install protobuf==3.18.0
- 若降级后仍报错,先完全清理环境内的protobuf残留再重新安装:
# 同时清理pip和conda安装的protobuf包 pip uninstall -y protobuf conda uninstall -y protobuf # 重新安装兼容版本 pip install protobuf==3.18.0
- 执行测试代码验证修复结果:
import tensorflow as tf print(tf.__version__)
额外注意事项
- M1架构下建议优先安装官方适配的
tensorflow-macos和tensorflow-metal包,获取原生性能支持的同时可减少兼容问题 - 不要混用pip和conda安装同一依赖包,尽量用同一种包管理器管理虚拟环境内的所有依赖
内容的提问来源于stack exchange,提问作者Arie Osdorp
相关产品推荐
相关产品推荐

