Keras导入报错:无法从keras.src.backend导入‘cast’(循环导入)
解决Keras与TensorFlow导入时的循环导入错误
问题场景
导入代码如下:
import tensorflow as tf import tensorflow.keras as keras from tensorflow.keras import layers, models
运行时出现错误:
ImportError: cannot import name 'cast' from partially initialized module 'keras.src.backend' (most likely due to a circular import) (C:\Users\DELL\AppData\Local\Programs\Python\Python311\Lib\site-packages\keras\src\backend\__init__.py)
解决方案
统一导入方式,避免混合引用
不要同时混用import tensorflow.keras as keras和from tensorflow.keras import ...,直接通过TensorFlow命名空间使用Keras,修改导入代码为:import tensorflow as tf from tensorflow.keras import layers, models # 后续使用时直接用tf.keras替代单独的keras引用,比如tf.keras.models.Sequential()卸载独立Keras包,消除版本冲突
如果单独安装过Keras,会和TensorFlow自带的Keras模块产生路径冲突,执行以下命令卸载独立Keras:pip uninstall keras -y之后安装与自带Keras兼容的TensorFlow稳定版本,比如:
pip install tensorflow==2.15.0清理Python模块缓存
删除项目目录下的__pycache__文件夹,同时清理Python安装目录site-packages中Keras相关的缓存文件,避免缓存导致的模块加载异常。调整导入顺序
将TensorFlow/Keras的导入语句放在代码最开头,避免其他自定义库或模块提前修改Keras的加载路径。
错误原因
该错误本质是循环导入,通常由两种情况引发:
- 系统中同时存在独立Keras包和TensorFlow集成的Keras,两个版本的模块路径冲突;
- 导入方式混乱,混用了不同命名空间下的Keras模块,导致模块初始化时出现依赖循环。
内容的提问来源于stack exchange,提问作者Tanasa
相关产品推荐
相关产品推荐

