Python3.7+TensorFlow2.11.0环境下ModuleNotFoundError求助
Keras与TensorFlow导入错误排查与解决
问题详情
在Jupyter Notebook中执行以下导入代码:
from keras.models import Sequential, load_model
出现ModuleNotFoundError: No module named 'tensorflow.compat'错误,完整回溯信息如下:
ModuleNotFoundError Traceback (most recent call last) ~\AppData\Local\Temp\ipykernel_13480\2236388005.py in <module> 1 import tensorflow 2 ----> 3 from keras.models import Sequential, load_model 4 from keras.layers import Dense, Convolution2D, MaxPooling2D, Flatten, Dropout 5 from keras.preprocessing import image ~\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\__init__.py in <module> 19 """ 20 from keras import distribute ---> 21 from keras import models 22 from keras.engine.input_layer import Input 23 from keras.engine.sequential import Sequential ~\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\models\__init__.py in <module> 16 17 ---> 18 from keras.engine.functional import Functional 19 from keras.engine.sequential import Sequential 20 from keras.engine.training import Model ~\AppData\Local\Programs\Python\Python37\lib\site-packages\keras\engine\functional.py in <module> 22 import warnings 23 ---> 24 import tensorflow.compat.v2 as tf 25 26 from keras import backend ModuleNotFoundError: No module named 'tensorflow.compat'
尝试改用TensorFlow集成路径导入:
from tensorflow.keras.models import Sequential, load_model
仍触发错误:
ModuleNotFoundError: No module named 'tensorflow.keras'
当前环境版本:Python 3.7,Keras 2.11.0,TensorFlow 2.11.0
解决步骤
1. 验证Jupyter环境一致性
Jupyter可能使用了未安装TensorFlow/Keras的Python环境,执行以下代码查看当前Notebook使用的解释器路径:
import sys print(sys.executable)
对比本地终端执行pip --version显示的Python路径,若不一致,切换Notebook的Kernel到对应环境。
2. 修复TensorFlow与Keras的版本冲突
TensorFlow 2.11.0已内置Keras,单独安装的Keras包会引发冲突,执行以下操作:
- 卸载独立Keras:
pip uninstall keras -y - 重新安装TensorFlow 2.11.0,修复损坏的安装文件:
pip install tensorflow==2.11.0 --force-reinstall
3. 使用正确的导入语法
修复后,统一使用TensorFlow集成的Keras模块导入:
from tensorflow.keras.models import Sequential, load_model from tensorflow.keras.layers import Dense, Conv2D, MaxPooling2D, Flatten, Dropout from tensorflow.keras.preprocessing import image
注:Convolution2D可替换为Conv2D,二者功能完全一致,后者是官方推荐的别名。
内容的提问来源于stack exchange,提问作者Serafinu Dibattfoli
相关产品推荐
相关产品推荐

