运行Waste-Classifier-V2时遇tensorflow.keras模块缺失错误
解决
ModuleNotFoundError: No module named 'tensorflow.keras'问题 核心原因
- TensorFlow 1.12.0无
tensorflow.keras模块:TF 1.x版本的Keras是独立包,需通过keras或tensorflow.contrib.keras调用,tensorflow.keras是TF 2.x才整合进主包的模块。 - Python版本不兼容:TensorFlow 1.12.0仅支持Python 2.7、3.3-3.6,你当前用的Python 3.10.6超出支持范围,强制安装会引发依赖、模块缺失问题。
- 适配包冲突:tensorflow-macos和tensorflow-metal是针对TF 2.x+的macOS适配包,与TF 1.12完全不兼容,重装这些包会加剧环境混乱。
可行解决方案
方案1:升级TensorFlow到2.x兼容版本(推荐)
仓库代码大概率适配TF 2.x,操作步骤:
- 卸载旧版本及冲突包:
pip3 uninstall -y tensorflow tensorflow-macos tensorflow-metal keras - 安装适配macOS的TF 2.x稳定版:
pip3 install tensorflow-macos tensorflow-metal - 验证安装:
import tensorflow as tf print(tf.__version__) # 应显示2.x版本,如2.15.x print(tf.keras.__version__) # 正常输出则模块可用 - 若代码存在TF 1.x语法报错,可在文件开头添加兼容代码:
或手动替换TF 1.x API为TF 2.x对应写法。import tensorflow.compat.v1 as tf tf.disable_v2_behavior()
方案2:降级Python并使用独立Keras(仅适配旧代码)
若必须使用TF 1.12,需调整Python版本:
- 用conda创建Python 3.6虚拟环境:
conda create -n waste-classifier python=3.6 conda activate waste-classifier - 安装TF 1.12和对应版本的独立Keras:
pip install tensorflow==1.12.0 keras==2.2.4 - 修改代码中的导入路径:将
from tensorflow.keras import ...替换为from keras import ...
方案3:使用仓库推荐的环境配置
查看仓库的requirements.txt或environment.yml文件,安装指定依赖:
- 若存在
requirements.txt:pip3 install -r requirements.txt - 若存在
environment.yml:conda env create -f environment.yml conda activate <环境名>
内容的提问来源于stack exchange,提问作者Shoot
相关产品推荐
相关产品推荐

