导入keras_cv遇ModuleNotFoundError及循环导入问题求助
解决keras_cv导入时的ModuleNotFoundError和循环导入问题
问题根源
ModuleNotFoundError: No module named 'resource':resource是Unix/Linux系统专属的标准库模块,Windows系统原生不支持,而你的tensorflow_datasets版本在shuffle.py中直接导入了该模块,导致Windows环境下报错。- 循环导入错误:第一次导入失败后,
tensorflow_datasets模块处于部分初始化状态,再次运行导入代码时就会触发循环导入异常。
解决步骤
步骤1:修复resource模块缺失问题
方案A:修改tensorflow_datasets的兼容代码
- 找到报错中
shuffle.py的路径:C:\Users\ROHIT\AppData\Roaming\Python\Python310\site-packages\tensorflow_datasets\core\shuffle.py - 打开该文件,将第20行的
import resource替换为以下条件导入代码:try: import resource except ImportError: # Windows系统使用pywin32替代 import win32api as resource - 若未安装
pywin32,先执行安装命令:pip install pywin32
方案B:降级到兼容Windows的tensorflow_datasets版本
部分旧版本的tensorflow_datasets对Windows兼容性更好,可尝试降级:
pip install tensorflow-datasets==4.9.2 --force-reinstall
步骤2:解决循环导入问题
修改完成后,必须重启Jupyter Notebook的内核,再重新运行导入代码块,不能直接在原内核下重复执行。
验证
重启内核后运行以下代码:
import time import keras_cv from tensorflow import keras import matplotlib.pyplot as plt
若无报错则问题解决。
内容的提问来源于stack exchange,提问作者Rohit
相关产品推荐
相关产品推荐

