如何为Windows和Linux系统在健身房安装Atari游戏环境?

2026-05-28 12:591阅读0评论SEO问题
  • 内容介绍
  • 文章标签
  • 相关推荐

本文共计1321个文字,预计阅读时间需要6分钟。

如何为Windows和Linux系统在健身房安装Atari游戏环境?

%E2%80%9CAtari%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E5%8F%AF%E4%BB%A5%E5%AE%8C%E6%95%B4%E5%AE%89%E8%A3%85%EF%BC%8C%E5%8F%8D%E4%B9%8B%E4%BC%9A%E9%81%87%E5%88%B0%E5%B8%B8%E8%A7%81%E7%9A%84%E9%94%99%E8%AF%AF%E2%80%9D


Gym配置Atari环境

上文安装的Gym只提供了一些基础的环境,要想玩街机游戏,还需要有Atari的支持。在官方文档上,Atari环境安装只需要一条命令,但是在安装过程中遇到了不少的典型错误(在win10、Mac、Linux上安装全都遇到了????),最后折腾了两三天才解决,因此在这里也是准备用一篇文章来记录下安装过程,也希望这篇博客能解决你的问题,节省你的时间。

废话不多说,正式开始:

本文主要环境版本:python:3.7, gym: 0.23.0, atari-py: 1.2.2

​ 强调一点哈,本文是基于​​上文​​​的内容,在命令行执行:​​conda activate Gym​​。

官网上描述,Atari的安装可以通过如下命令(官网上只有第一行,后面是需要的依赖):

pip install gym[atari]
pip install opencv-python
pip install ale-py
pip install pyglet

安装后,执行测试代码如下:

import time
import gym

env = gym.make('BreakoutNoFrameskip-v4')
print("Observation Space: ", env.observation_space)
print("Action Space ", env.action_space)

obs = env.reset()
for i in range(1000):
env.render()
action = env.action_space.sample()
obs, reward, done, info = env.step(action)
time.sleep(0.01)
env.close()

print(gym.envs.registry.all())

执行如果你报如下错误(哈哈,应当就是这个错误,没啥意外的):

f'We\'re Unable to find the game "{self._game}". Note: Gym no longer distributes ROMs. '
gym.error.Error: We're Unable to find the game "Breakout". Note: Gym no longer distributes ROMs. If you own a license to use the necessary ROMs for research purposes you can download them via `pip install gym[accept-rom-license]`. Otherwise, you should try importing "Breakout" via the command `ale-import-roms`. If you believe this is a mistake perhaps your copy of "Breakout" is unsupported. To check if this is the case try providing the environment variable `PYTHONWARNINGS=default::ImportWarning:ale_py.roms`. For more information see: github.com/mgbellemare/Arcade-Learning-Environment#rom-management

主要原因是Gym在某个版本,将一些环境剥离开了,Gym no longer distributes ROMs,Gym不在统一管理Roms了,解决这个问题,主要有两个方法:

  • 版本回退,gym版本回退至0.19.0,Atari版本回退为0.2.6,执行如下两条命令:
    ​​pip install gym==0.19.0 pip install atari_py==0.2.6 ​​
  • 按照提示,安装Arcade-Learning-Environment,遇到问题不能总是回退版本嘛不是。

  • 如何为Windows和Linux系统在健身房安装Atari游戏环境?

    不过按照上图官网上的提示,我折腾了半天,愣是不知道怎么做,坑啊。下面来说下解决方案:

    到Atari的[网站](​​Atari 2600 VCS ROM Collection (atarimania.com)​​)上去下载Roms,下载2600个游戏的rom,下载的文件是Roms.zip。

    如果下载速度过慢,可以到这个​​链接下载​​.

    将压缩包解压,在命令行进入刚才的解压目录的上一层,执行如下命令:

    ale-import-roms ROMS/



    执行结果如下图所示,导入的游戏数量是看你的环境是否支持的,我电脑上只导入了110个。



    按理来说,到这里,总应该是安装完成了吧。

    嗯,少年,你想多了!



    再次执行测试代码,你就会发现如下错误:

    from gym.envs.classic_control import rendering
    ImportError: cannot import name 'rendering' from 'gym.envs.classic_control' (/home/lizishu/anaconda3/envs/GymSecond/lib/python3.7/site-packages/gym/envs/classic_control/__init__.py)

    哎,有问题就要迎难而上,这个问题主要是由于Gym版本的变化,在某个版本中删除了classic_control包中的rendering文件,那我们就手动把这个文件给加上,

    ​ rendering文件github​​地址​​。

    ​ 只要把rendering.py复制到你电脑中gym->envs->classic_control中即可。1.新建rendering.py文件,2.然后将内容复制进去即可。具体的解决细节可以参考这篇​​文章​​。也是这个问题困扰我的时间最久,怀疑是不是系统问题,于是到linux上按照以上步骤又搞了一圈,嗯,一样的配方、一样的Bug。少年,你经历过过绝望么,这篇博客写的我都快哭了,一把心酸苦泪。



    最后,还是看下我们的测试结果:



    ​ 测试代码的最后一行:​​print(gym.envs.registry.all())​​,会打印出系统支持的环境。


    本文的内容到这里就结束了,这也是我学习强化学习环境遇到的第一个大的坑,反反复复折腾了两天。本文内容全部都是由博主自己进行整理并结合自身的理解进行总结,如果有什么错误,还请批评指正。

    如果本文能对你有所帮助,还请给点赞、收藏、关注博主。



    本文共计1321个文字,预计阅读时间需要6分钟。

    如何为Windows和Linux系统在健身房安装Atari游戏环境?

    %E2%80%9CAtari%E7%8E%AF%E5%A2%83%E9%85%8D%E7%BD%AE%EF%BC%8C%E4%BD%BF%E7%94%A8%E5%AE%98%E6%96%B9%E6%96%87%E6%A1%A3%E5%8F%AF%E4%BB%A5%E5%AE%8C%E6%95%B4%E5%AE%89%E8%A3%85%EF%BC%8C%E5%8F%8D%E4%B9%8B%E4%BC%9A%E9%81%87%E5%88%B0%E5%B8%B8%E8%A7%81%E7%9A%84%E9%94%99%E8%AF%AF%E2%80%9D


    Gym配置Atari环境

    上文安装的Gym只提供了一些基础的环境,要想玩街机游戏,还需要有Atari的支持。在官方文档上,Atari环境安装只需要一条命令,但是在安装过程中遇到了不少的典型错误(在win10、Mac、Linux上安装全都遇到了????),最后折腾了两三天才解决,因此在这里也是准备用一篇文章来记录下安装过程,也希望这篇博客能解决你的问题,节省你的时间。

    废话不多说,正式开始:

    本文主要环境版本:python:3.7, gym: 0.23.0, atari-py: 1.2.2

    ​ 强调一点哈,本文是基于​​上文​​​的内容,在命令行执行:​​conda activate Gym​​。

    官网上描述,Atari的安装可以通过如下命令(官网上只有第一行,后面是需要的依赖):

    pip install gym[atari]
    pip install opencv-python
    pip install ale-py
    pip install pyglet

    安装后,执行测试代码如下:

    import time
    import gym

    env = gym.make('BreakoutNoFrameskip-v4')
    print("Observation Space: ", env.observation_space)
    print("Action Space ", env.action_space)

    obs = env.reset()
    for i in range(1000):
    env.render()
    action = env.action_space.sample()
    obs, reward, done, info = env.step(action)
    time.sleep(0.01)
    env.close()

    print(gym.envs.registry.all())

    执行如果你报如下错误(哈哈,应当就是这个错误,没啥意外的):

    f'We\'re Unable to find the game "{self._game}". Note: Gym no longer distributes ROMs. '
    gym.error.Error: We're Unable to find the game "Breakout". Note: Gym no longer distributes ROMs. If you own a license to use the necessary ROMs for research purposes you can download them via `pip install gym[accept-rom-license]`. Otherwise, you should try importing "Breakout" via the command `ale-import-roms`. If you believe this is a mistake perhaps your copy of "Breakout" is unsupported. To check if this is the case try providing the environment variable `PYTHONWARNINGS=default::ImportWarning:ale_py.roms`. For more information see: github.com/mgbellemare/Arcade-Learning-Environment#rom-management

    主要原因是Gym在某个版本,将一些环境剥离开了,Gym no longer distributes ROMs,Gym不在统一管理Roms了,解决这个问题,主要有两个方法:

  • 版本回退,gym版本回退至0.19.0,Atari版本回退为0.2.6,执行如下两条命令:
    ​​pip install gym==0.19.0 pip install atari_py==0.2.6 ​​
  • 按照提示,安装Arcade-Learning-Environment,遇到问题不能总是回退版本嘛不是。

  • 如何为Windows和Linux系统在健身房安装Atari游戏环境?

    不过按照上图官网上的提示,我折腾了半天,愣是不知道怎么做,坑啊。下面来说下解决方案:

    到Atari的[网站](​​Atari 2600 VCS ROM Collection (atarimania.com)​​)上去下载Roms,下载2600个游戏的rom,下载的文件是Roms.zip。

    如果下载速度过慢,可以到这个​​链接下载​​.

    将压缩包解压,在命令行进入刚才的解压目录的上一层,执行如下命令:

    ale-import-roms ROMS/



    执行结果如下图所示,导入的游戏数量是看你的环境是否支持的,我电脑上只导入了110个。



    按理来说,到这里,总应该是安装完成了吧。

    嗯,少年,你想多了!



    再次执行测试代码,你就会发现如下错误:

    from gym.envs.classic_control import rendering
    ImportError: cannot import name 'rendering' from 'gym.envs.classic_control' (/home/lizishu/anaconda3/envs/GymSecond/lib/python3.7/site-packages/gym/envs/classic_control/__init__.py)

    哎,有问题就要迎难而上,这个问题主要是由于Gym版本的变化,在某个版本中删除了classic_control包中的rendering文件,那我们就手动把这个文件给加上,

    ​ rendering文件github​​地址​​。

    ​ 只要把rendering.py复制到你电脑中gym->envs->classic_control中即可。1.新建rendering.py文件,2.然后将内容复制进去即可。具体的解决细节可以参考这篇​​文章​​。也是这个问题困扰我的时间最久,怀疑是不是系统问题,于是到linux上按照以上步骤又搞了一圈,嗯,一样的配方、一样的Bug。少年,你经历过过绝望么,这篇博客写的我都快哭了,一把心酸苦泪。



    最后,还是看下我们的测试结果:



    ​ 测试代码的最后一行:​​print(gym.envs.registry.all())​​,会打印出系统支持的环境。


    本文的内容到这里就结束了,这也是我学习强化学习环境遇到的第一个大的坑,反反复复折腾了两天。本文内容全部都是由博主自己进行整理并结合自身的理解进行总结,如果有什么错误,还请批评指正。

    如果本文能对你有所帮助,还请给点赞、收藏、关注博主。