Gym调用ALE/Breakout-v5环境报UnregisteredEnv未注册错误
报错原因
ALE/Breakout-v5属于Atari学习环境(ALE)的独立环境,gym从0.20之后的版本把Atari相关环境拆分到了独立依赖包中,没有安装对应依赖、环境ID和gym版本不匹配,都会触发UnregisteredEnv报错,单纯切换gym主版本不装配套依赖解决不了问题。
可直接落地的解决步骤
根据你使用的tf2.8环境,二选一即可:
- 方案1:使用
ALE/Breakout-v5环境ID
先清理环境里的冲突包:
安装带Atari依赖和ROM授权的gym版本:pip uninstall -y gym atari-py ale-py
装完直接运行原有代码就能正常创建环境,不需要额外手动下载ROM。pip install "gym[atari,accept-rom-license]" - 方案2:保留gym==0.21.0适配tf2.8
0.21版本的gym不支持带ALE/前缀的v5版Atari环境ID,不要用ALE/Breakout-v5,先装对应老版本依赖:
把代码里的环境创建语句改成:pip install gym==0.21.0 atari-py==0.2.9
即可正常调用。import gym env = gym.make("Breakout-v0")
注意:如果用老版本atari-py时提示ROM缺失,直接执行
python -m atari_py.import_roms自动导入ROM即可,不需要手动找资源。
内容的提问来源于stack exchange,提问作者Graverman
相关产品推荐
相关产品推荐

