Python 超级机器人与OpenAI基线,如何?

Python 超级机器人与OpenAI基线,如何?,python,openai-gym,Python,Openai Gym,我试图在OpenAI基线中运行SuperMarioBros环境。通常,这些复古环境不同于健身房图书馆支持的本地attari 2600 为了使其与基线一起运行,需要安装一个第三方库,该库随代码一起使用,并从该链接获得帮助() 但不幸的是,即使在这之后,它也没有运行,并且没有找到rom的错误 虽然在安装外部复古,它应该是好的,但它需要原始rom文件直接从游戏模拟器。有什么办法可以扭转局面吗?还是我在这里遗漏了什么 Process SpawnProcess-2: Traceback (most

我试图在OpenAI基线中运行SuperMarioBros环境。通常,这些复古环境不同于健身房图书馆支持的本地attari 2600

为了使其与基线一起运行,需要安装一个第三方库,该库随代码一起使用,并从该链接获得帮助()

但不幸的是,即使在这之后,它也没有运行,并且没有找到rom的错误

虽然在安装外部复古,它应该是好的,但它需要原始rom文件直接从游戏模拟器。有什么办法可以扭转局面吗?还是我在这里遗漏了什么

    Process SpawnProcess-2: Traceback (most recent call last): 
File "/usr/local/lib/python3.6/dist-packages/retro/__init__.py", line 49, in make     retro.data.get_romfile_path(game, inttype)   
File "/usr/local/lib/python3.6/dist-packages/retro/data/__init__.py", line 288, in get_romfile_path    
raise FileNotFoundError("No romfiles found for game: %s" % game) FileNotFoundError: 
No romfiles found for game: SuperMarioBros-Nes

默认情况下,retro只安装1个游戏ROM

你试过这个吗。它没有使用retro env(或者可能在内部使用,不确定)。但它对我有用:


注意:我在linux机器上运行(Windows遇到了麻烦)

我做了一次黑客攻击,并能够在retro中运行mario(在Windows本身中)。下面是一步一步的技巧:

  • 安装并重新安装 在我以前的 答复
  • 从中复制.nes文件 lib/python3.7/site-packages/gym\u super\u mario\u bros//u roms(这是 健身房超级马里奥兄弟安装在站点包中的位置)-> Lib\site packages\retro\data\stable\supermarios-Nes(这是 在站点软件包中安装了retro)
  • 重命名 super-mario-bros.nes至rom.nes
  • 你完了。您可以使用以下代码启动mario:
  • 另外一个提示:如果你想在此之后手动播放马里奥,那么运行以下命令。(Z代表跳跃,x代表射击):
    python-m retro.examples.interactive——游戏Supermarios Nes
    [享受]

        Process SpawnProcess-2: Traceback (most recent call last): 
    File "/usr/local/lib/python3.6/dist-packages/retro/__init__.py", line 49, in make     retro.data.get_romfile_path(game, inttype)   
    File "/usr/local/lib/python3.6/dist-packages/retro/data/__init__.py", line 288, in get_romfile_path    
    raise FileNotFoundError("No romfiles found for game: %s" % game) FileNotFoundError: 
    No romfiles found for game: SuperMarioBros-Nes
    
    Python 2.7.16 |Anaconda, Inc.| (default, Mar 14 2019, 21:00:58)
    [GCC 7.3.0] on linux2
    Type "help", "copyright", "credits" or "license" for more information.
    >>> from nes_py.wrappers import BinarySpaceToDiscreteSpaceEnv
    >>> import gym_super_mario_bros
    >>> from gym_super_mario_bros.actions import SIMPLE_MOVEMENT
    >>> env = gym_super_mario_bros.make('SuperMarioBros-v0')
    >>> env = BinarySpaceToDiscreteSpaceEnv(env, SIMPLE_MOVEMENT)
    >>> done = True
    >>> for step in range(5000):
    ...     if done:
    ...         state = env.reset()
    ...     state, reward, done, info = env.step(env.action_space.sample())
    ...     env.render()
    ...
    
    import retro
    def main():
        env = retro.make(game='SuperMarioBros-Nes')
        obs = env.reset()
        while True:
            obs, rew, done, info = env.step(env.action_space.sample())
            env.render()
            if done:
                obs = env.reset()
        env.close()
    
    if __name__ == "__main__":
        main()