TensorFlow+Flask运行报错ModuleNotFoundError: No module named 'tensorflow.compat'求助
问题根因
- 命名冲突
你当前工作目录下存在名为code.py的自定义文件,与Python标准库内置的code模块重名。当TensorFlow依赖的absl.app模块导入调试工具pdb时,pdb会优先加载你本地的code.py文件而非标准库模块,触发循环导入逻辑,最终导致模块查找失败。 - 版本不匹配
你安装的独立Keras版本与TensorFlow版本不兼容,当前Keras尝试调用的tensorflow.compat.v2模块不存在于你安装的TensorFlow版本中。
解决方案
- 重命名本地文件:将
G:\AiDEV\Kid\CNN\New folder\路径下的code.py改为非标准库命名,比如flask_demo.py,同时删除同目录下的__pycache__缓存文件夹,避免旧缓存生效。 - 统一依赖版本:你当前使用Python 3.9,建议安装版本匹配的TensorFlow与Keras,执行命令:
pip install tensorflow==2.10.0 keras==2.10.0
若无需GPU支持,也可选择更高版本,只要保证TensorFlow和Keras的大版本号完全一致即可。 - 调整导入语句:将Flask代码中的
from keras.preprocessing.image import ImageDataGenerator改为from tensorflow.keras.preprocessing.image import ImageDataGenerator,直接使用TensorFlow内置的Keras接口,避免独立Keras包与TensorFlow内置Keras产生冲突。 - 修正路径配置:你代码中
app.config['UPLOAD_FOLDER'] = 'uploaded / image'的路径包含无效空格,修改为app.config['UPLOAD_FOLDER'] = 'uploaded/image',提前手动创建对应层级的文件夹,避免文件保存时报路径不存在错误。
内容的提问来源于stack exchange,提问作者Aditya Karn
相关产品推荐
相关产品推荐

