使用TensorFlow 2.6时出现ModuleNotFoundError: No module named 'keras'报错
关于TensorFlow 2.6版本keras模块找不到的解决方案
问题核心原因
报错由三个常见问题导致:
- TensorFlow 2.6的conda安装包存在keras子模块路径映射异常,无法直接通过
tf.keras点出下层接口,但完整路径导入可以正常识别 - conda和pip混装TensorFlow相关组件,导致包路径冲突
- tensorflow-addons 0.14依赖TensorFlow内置的keras模块,当内置keras路径异常时就会触发导入报错
第一步:清理环境残留包
先激活目标conda环境,执行以下命令清除所有相关包,避免多源安装残留冲突:
conda uninstall -y tensorflow keras tensorflow-addons pip uninstall -y tensorflow keras tensorflow-addons
第二步:按版本匹配要求重新安装
TensorFlow 2.6适配Python 3.6~3.9版本,建议安装前先确认Python版本符合要求,再统一安装匹配组件:
# 可直接在已清理的原有tf环境中安装,也可以新建环境指定Python版本避免兼容问题 # conda create --name tf python=3.8 conda activate tf # 安装TensorFlow 2.6,该版本已内置对应版本的keras,无需单独安装 conda install tensorflow=2.6 # 安装匹配的tensorflow-addons 0.14版本 pip install tensorflow-addons==0.14
第三步:验证调用写法
安装完成后以下三种调用写法均可以正常运行:
# 写法1:完整路径导入keras接口 import tensorflow as tf from tensorflow.keras.models import Sequential model = Sequential() # 写法2:先显式导入keras子模块再调用 import tensorflow as tf from tensorflow import keras model = keras.models.Sequential() # 写法3:tensorflow-addons导入测试 from tensorflow_addons.seq2seq.sampler import TrainingSampler
特殊场景:单独使用原生Keras
如果你需要使用独立于TensorFlow的原生Keras 2.6版本,清理环境后不要安装TensorFlow,直接执行:
conda install keras=2.6
即可直接调用:
from keras.models import Sequential model = Sequential()
内容的提问来源于stack exchange,提问作者SzymonO
相关产品推荐
相关产品推荐

