【问题标题】:Error in importing environment OpenAI Gym导入环境 OpenAI Gym 时出错
【发布时间】:2021-11-25 06:59:20
【问题描述】:

我正在尝试运行 OpenAI Gym 环境,但出现以下错误:

import gym
env = gym.make('Breakout-v0')

错误

/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ale_py/gym/environment.py:11: DeprecationWarning: Importing atari-py roms won't be supported in future releases of ale-py.
  import ale_py.roms as roms
A.L.E: Arcade Learning Environment (version +a54a328)
[Powered by Stella]
Traceback (most recent call last):
  File "/Users/username/Desktop/OpenAI Gym Stuff/OpenAI_Exp.py", line 2, in <module>
    env = gym.make('Breakout-v0')
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/gym/envs/registration.py", line 200, in make
    return registry.make(id, **kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/gym/envs/registration.py", line 105, in make
    env = spec.make(**kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/gym/envs/registration.py", line 75, in make
    env = cls(**_kwargs)
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ale_py/gym/environment.py", line 123, in __init__
    self.seed()
  File "/Library/Frameworks/Python.framework/Versions/3.8/lib/python3.8/site-packages/ale_py/gym/environment.py", line 171, in seed
    raise error.Error(
gym.error.Error: Unable to find game "Breakout", did you import Breakout with ale-import-roms?

【问题讨论】:

  • 可能需要在互联网上找到原创ROM和游戏Breakout
  • 或者可能需要安装gym[atari]gym[all] 才能拥有所有元素。
  • 这是完整的错误信息吗?代码适用于健身房 0.18.0,但更新到 0.20.0 后,我看到消息 DeprecationWarning: Automatic importing of atari-py roms won't be supported in future releases of ale-py. - 所以似乎某些功能在较新版本中被弃用,这可能会产生问题。您可以尝试使用pip install gym==0.18.0 安装旧版本并检查print( gym.__version__ )
  • 如果我将ale_py0.7.1 降级到0.7 - pip install -U ale_py==0.7gym 0.20.0 对我有用。另请参阅 GitHub 上的问题 AttributeError: module 'ale_py.gym' has no attribute 'ALGymEnv' #2432
  • 您还可以在Release Note for 0.21.0 中看到一些信息(仍然只在 GitHub 上)。 pip install gym[atari] no longer distributes Atari ROMs that the ALE (the Atari emulator used) needs to run the various games. The easiest way to install ROMs into the ALE has been to use AutoROM.链接:AutoROM

标签: python openai-gym


【解决方案1】:
pip install gym[atari,accept-rom-license]==0.21.0

【讨论】:

    【解决方案2】:

    代码适用于 gym 0.18.00.19.0 但不适用于 0.20.0

    你可以降级

    pip install --upgrade gym==0.19.0
    

    顺便说一句:它可能还需要安装 gym[atari]gym[all] 才能使所有元素正常工作。


    基于Release Note for 0.21.0 中的信息(pip 上尚未准备好,但您可以从 GitHub 安装)ALE (Arcade Learning Environment) 中发生了一些变化,这引起了所有问题,但它已在 @ 中修复987654334@.

    -旧的 Atari 入口点在上一个版本中被破坏,升级到 ALE-Py 已修复

    但是新的gym[atari] 不安装ROM,你需要使用模块AutoROM

    -pip install gym[atari] 不再分发 ALE(使用的 Atari 模拟器)运行各种游戏所需的 Atari ROM。将 ROM 安装到 ALE 中的最简单方法是使用 AutoROM。


    编辑:

    安装后来自 GitHub 的版本 0.21.0 对我有效

    (可能需要程序git

    pip install --upgrade git+https://github.com/openai/gym
    pip install autorom
    
    AutoRom    
    
    pip install --upgrade gym[atari]
    

    AutoRom 运行程序,询问您是否有 ROM 许可证并在AutoROM/roms 中安装 ROM,但我不必将 ROM 移动到其他地方。

    AutoROM will download the Atari 2600 ROMs.
    They will be installed to:
        /usr/local/lib/python3.8/dist-packages/AutoROM/roms
    
    Existing ROMs will be overwritten.
    
    I own a license to these Atari 2600 ROMs.
    I agree to not distribute these ROMs and wish to proceed: [Y/n]:
    
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/adventure.bin                                                                                                                           
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/air_raid.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/alien.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/amidar.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/assault.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/asterix.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/asteroids.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/atlantis.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/atlantis2.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/backgammon.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/bank_heist.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/basic_math.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/battle_zone.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/beam_rider.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/berzerk.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/blackjack.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/bowling.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/boxing.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/breakout.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/carnival.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/casino.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/centipede.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/chopper_command.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/combat.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/crazy_climber.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/crossbow.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/darkchambers.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/defender.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/demon_attack.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/donkey_kong.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/double_dunk.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/earthworld.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/elevator_action.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/enduro.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/entombed.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/et.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/fishing_derby.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/flag_capture.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/freeway.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/frogger.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/frostbite.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/galaxian.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/gopher.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/gravitar.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/hangman.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/haunted_house.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/hero.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/human_cannonball.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/ice_hockey.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/jamesbond.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/journey_escape.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/joust.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/kaboom.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/kangaroo.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/keystone_kapers.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/king_kong.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/klax.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/koolaid.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/krull.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/kung_fu_master.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/laser_gates.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/lost_luggage.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/mario_bros.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/maze_craze.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/miniature_golf.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/montezuma_revenge.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/mr_do.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/ms_pacman.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/name_this_game.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/othello.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/pacman.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/phoenix.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/pitfall.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/pitfall2.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/pong.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/pooyan.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/private_eye.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/qbert.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/riverraid.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/road_runner.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/robotank.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/seaquest.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/sir_lancelot.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/skiing.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/solaris.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/space_invaders.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/space_war.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/star_gunner.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/superman.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/surround.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/tennis.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/tetris.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/tic_tac_toe_3d.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/time_pilot.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/trondead.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/turmoil.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/tutankham.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/up_n_down.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/venture.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/video_checkers.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/video_chess.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/video_cube.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/video_pinball.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/warlords.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/wizard_of_wor.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/word_zapper.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/yars_revenge.bin
    Installed /usr/local/lib/python3.8/dist-packages/AutoROM/roms/zaxxon.bin
    Done!
    

    安装后,此代码对我有效,没有错误,也没有DeprecationWarning

    import gym
    import ale_py
    
    print('gym:', gym.__version__)
    print('ale_py:', ale_py.__version__)
    
    env = gym.make('Breakout-v0')
    

    它给了

    gym: 0.21.0
    ale_py: 0.7.1
    
    A.L.E: Arcade Learning Environment (version +b7b0c1a)
    [Powered by Stella]
    

    【讨论】:

      【解决方案3】:

      可以用conda解决:

      1. 安装gym 0.19.0版,由,

        conda install -c conda-forge gym=0.19.0;
        
      2. 通过

        安装atari_py
        conda install -c conda-forge atari_py;
        
      3. 下载Roms,解压RAR。

      4. 打开一个终端,激活你的环境,然后输入:

        python -m atari_py.import_roms \<path to folder\>, 
        

        将复制 指定到 pkg 文件夹的文件夹中的 ROM。

      【讨论】:

        【解决方案4】:

        这通过终端对我有用:

        pip install gym[atari]
        pip install autorom[accept-rom-license]
        

        安装gym后是80场比赛。安装gym[atari]后是267游戏。而且您必须接受特定的许可证才能激活其他游戏。

        【讨论】:

          猜你喜欢
          • 2019-06-04
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-10-18
          • 2017-10-24
          • 2022-10-08
          • 2019-09-21
          • 2022-12-10
          相关资源
          最近更新 更多