Python 3.10.10运行KerasRL CartPole示例报错,替换KerasRL2仍异常
KerasRL CartPole 示例错误解决方案
处理 ModuleNotFoundError: No module named 'keras.utils.generic_utils'
原KerasRL仓库已停止维护,和高版本TensorFlow/Keras兼容性极差。keras.utils.generic_utils在新版Keras里被移到了tensorflow.keras.utils.generic_utils,但直接改源码容易触发更多兼容问题,推荐两种靠谱处理方式:
- 降级Keras到原KerasRL支持的最高稳定版2.3.1:
pip install keras==2.3.1 - 改用维护中的KerasRL2兼容分支,先卸载现有冲突包:
再从指定源码安装:pip uninstall keras-rl keras-rl2 -ypip install git+https://github.com/wau/keras-rl2.git
处理 ImportError: cannot import name '__version__' from 'tensorflow.keras'
这个错误是因为新版TensorFlow/Keras移除了tensorflow.keras.__version__的直接导出,修复步骤很简单:
- 找到Python环境中keras-rl2的
__init__.py文件(一般在Lib/site-packages/rl/__init__.py路径下) - 找到导入
__version__的代码行,替换成:from tensorflow.keras import version_utils __version__ = version_utils.__version__ - 保存文件后重新运行代码
额外建议:用虚拟环境隔离依赖
避免全局包版本冲突,创建独立虚拟环境后再装依赖:
python -m venv rl_env # Windows激活环境 rl_env\Scripts\activate # Linux/macOS激活环境 source rl_env/bin/activate # 安装兼容版本的依赖组合 pip install tensorflow==2.10.0 keras==2.10.0 gym==0.26.2 pip install git+https://github.com/wau/keras-rl2.git
内容的提问来源于stack exchange,提问作者Rasmus Kristian Jensen
相关产品推荐
相关产品推荐

