You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac已安装TensorFlow仍提示ModuleNotFoundError报错排查问询

问题描述
  • 运行环境:Mac设备(从安装路径判断为Apple Silicon架构机型),计划使用Keras框架编写人工神经网络训练代码
  • 报错场景:运行代码时在import tensorflow as tf行触发异常
  • 错误类型:ModuleNotFoundError
  • 错误信息:No module named 'tensorflow'
  • 已确认信息:执行pip show tensorflow显示TensorFlow 0.12.0已安装,安装路径为/opt/homebrew/lib/python3.9/site-packages,列出的依赖包括numpy、protobuf、six、wheel
  • 测试代码如下:
import tensorflow as tf
from tensorflow import keras
from keras.models import Sequential
from keras.layers import Dense, Activation
model = Sequential()
model.add(Dense(2, input_shape=(2,)))
model.add(Activation('sigmoid'))
model.add(Dense(1))
model.add(Activation('sigmoid')) 
model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['accuracy'])
排查方向

1. 优先排查Python解释器与pip安装路径不匹配问题

这是该类报错的最高发原因。Mac设备通常同时存在多套Python环境:系统自带Python、Homebrew安装Python、虚拟环境(conda/venv)Python、pyenv管理的多版本Python,很容易出现pip把包装到了Python3.9的site-packages目录,但运行代码时调用的是其他版本Python解释器的情况。
排查操作:

  • 在你运行代码的同一个终端/IDE运行环境中,执行which python3(如果用python命令启动脚本就执行which python),确认输出的解释器路径是否对应Homebrew安装的Python3.9
  • 执行python3 -c "import sys; print(sys.path)",查看输出的包搜索路径列表中是否包含/opt/homebrew/lib/python3.9/site-packages,如果不存在该路径,即可确认是环境不匹配问题。
    修复方式:使用当前运行代码的Python解释器直接调用pip安装包,不要直接用裸pip命令,格式为<对应Python解释器的绝对路径> -m pip install <包名>,避免装到其他环境。

2. 排查TensorFlow版本兼容性问题

你当前安装的TensorFlow 0.12.0是2017年发布的远古版本,存在两个致命兼容问题:

  • 该版本发布时间远早于Apple Silicon系列芯片上市,没有ARM64架构的适配包,在M系列芯片的Mac上无法正常运行
  • 该版本最高仅支持Python3.5,且发布时Keras尚未被整合进TensorFlow,代码中from tensorflow import keras的写法在该版本下本身就不存在对应的模块,就算解决路径问题也会触发后续导入错误。

3. 排查代码导入逻辑问题

当使用TensorFlow 2.x内置的Keras模块时,不需要额外安装独立的Keras包,也不要直接从keras根路径导入模块,否则容易出现版本不匹配的导入错误。

可直接落地的修复步骤
  • 第一步:清理旧的错误版本依赖,执行pip uninstall -y tensorflow keras
  • 第二步:确认运行代码使用的Python解释器版本,推荐选择Python3.9~3.11,该版本区间在Apple Silicon Mac上对TensorFlow的兼容性最好
  • 第三步:为当前使用的Python解释器安装适配版本的TensorFlow,执行python3 -m pip install tensorflow,当前官方稳定版为2.x系列,已内置完整Keras模块,无需单独安装Keras
  • 第四步:安装完成后执行验证命令python3 -c "import tensorflow as tf; print(tf.__version__)",如果正常输出版本号无报错,说明基础环境配置正确
  • 第五步:调整代码中的Keras导入语句,将独立Keras的导入写法替换为TensorFlow内置路径,修改后代码如下:
import tensorflow as tf
from tensorflow.keras.models import Sequential
from tensorflow.keras.layers import Dense, Activation
model = Sequential()
model.add(Dense(2, input_shape=(2,)))
model.add(Activation('sigmoid'))
model.add(Dense(1))
model.add(Activation('sigmoid')) 
model.compile(loss='mean_squared_error', optimizer='sgd', metrics=['accuracy'])

调整完成后重新运行代码即可正常启动。

内容的提问来源于stack exchange,提问作者jessie toms

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.28 16:06:26