linux安装atari环境实录

linux安装atari环境实录

  • 一、第一次尝试(失败)
    • 1.创建新环境
    • 2.cmake配置
      • 2.1 安装cmake
      • 2.2 安装zlib
    • 3.安装gym[atari]
    • 遇到的问题
      • 1.apt-get
      • 2.pip
      • 3.numpy版本不对的问题
      • 4.python版本不对的问题
  • 二、第二次尝试(成功)
    • 1.创建新环境(python3.7)
    • 2.安装配置cmake(第一次已经完成,这里跳过)
    • 3.在新环境下安装numpy
    • 4.安装gym[atari]
    • 5.安装新版atari_py
      • 下载atari-py
      • 下载安装源码
    • 成功!!!!!
  • 三、精简版安装流程
    • 3.1 新建python3.7环境
    • 3.2 安装gym
    • 3.3 安装atari_py
    • 3.4安装numpy(以防万一)
    • 安装gym[accept-rom-license]
    • 测试(成功)
  • 四、步骤总结(嫌麻烦的同学直接空降这里)

参考了的文章:

  • https://blog.csdn.net/weixin_42527725/article/details/109459066
  • https://blog.csdn.net/crud_player/article/details/110474179

这两个我参考了,但是都没有成功。
其他关于一些bug的参考在文中有链接。

一、第一次尝试(失败)

1.创建新环境

命令:conda create -n atari-env python=3.6

2.cmake配置

先执行下面命令:
sudo apt-get install update && sudo apt-get install upgrade && sudo apt-get install build-essential

2.1 安装cmake

sudo apt-get install cmake

2.2 安装zlib

sudo apt-get install zlib1g-dev

上面三个命令的执行结果:
linux安装atari环境实录_第1张图片

3.安装gym[atari]

pip install gym[atari]
这一行命令很有可能是无法正常安装的,下面是遇到的各种问题,有些是因为我的环境本身的问题,与gym无关。

遇到的问题

1.apt-get

参考:【已解决】Could not get lock /var/lib/dpkg/lock-frontend

2.pip

pip用不了
linux安装atari环境实录_第2张图片
解决办法就是重装pip,参考:pip安装出现FileNotFoundError: [Errno 2] No such file or directory: ‘/Disk/D/software/anaconda3/lib/pytho

3.numpy版本不对的问题

在测试atari的时候,numpy又报错了,导入失败,卸载重装即可。
linux安装atari环境实录_第3张图片

4.python版本不对的问题

在解决了numpy等问题之后,再次测试,又报错,经查,显示需要python3.7,或者gym版本降为0.20.0。0.21.0是不支持python3.6的。

在这里插入图片描述
于是,删除环境,重新建一个python3.7的环境。

二、第二次尝试(成功)

1.创建新环境(python3.7)

conda create -n atari-env python=3.7

2.安装配置cmake(第一次已经完成,这里跳过)

3.在新环境下安装numpy

pip install numpy==1.19.5

4.安装gym[atari]

pip install gym[atari]

测试代码1:

import gym
import atari_py

env = gym.make('PongNoFrameskip-v4')
print(env.observation_space)

可以运行,说明gym没问题。
在这里插入图片描述

测试代码2:

import gym
env = gym.make('SpaceInvaders-v0')
status = env.reset()

for step in range(1000):
    env.render()
    thisstep = 1
    status, reward, done, info = env.step(thisstep)
    jpgname = './pic-%d.jpg' % step
    print(reward)
    if done:
        print('dead in %d steps' % step)
        break
env.close()

报错信息显示没有对应的游戏环境,可能原因是gym自带的atari环境里面没有这个新版的游戏。
linux安装atari环境实录_第4张图片

5.安装新版atari_py

1:pip uninstall atari_py
1:pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py
但是,遇到下面的问题,找不到对应的版本。
在这里插入图片描述

于是,顺着其链接,可以看到,这里面全是win系统的,麻了:
linux安装atari环境实录_第5张图片

下载atari-py

pip install atari-py
在这里插入图片描述
下载是成功了,但是还是报错(最后遇到的还是这个报错,这个报错是可以解决的,但是atari-py安装的版本是0.2的):
linux安装atari环境实录_第6张图片
没办法,先卸载这个。
pip uninstall atari-py

下载安装源码

前面提到过这个链接:https://github.com/Kojoley/atari-py/releases

里面都是win系统的whl文件,没有linux系统,但是下面又sourcecode的压缩包,先下载下来解压再说。
然后进入解压后的压缩包。

pip install -e .

在这里插入图片描述
成功安装atari1.2.2。

赶紧测试一发:
很遗憾,还是之前的报错:
linux安装atari环境实录_第7张图片
根据提示,那就添加一个[accept-rom-license]试试

pip install gym[accept-rom-license]

稍等一会之后,下载安装完成:
linux安装atari环境实录_第8张图片
赶紧再测试一发:
linux安装atari环境实录_第9张图片
报错没有pyglet这个库,问题不大,安装一下。

pip install pyglet

再次测试,终于成功了!!!!!!

成功!!!!!

linux安装atari环境实录_第10张图片

三、精简版安装流程

上面第二节虽然安装成功了,但是,整个过程可以说是十分曲折,很多步骤可能是多余的,所以,为了测试,我新建一个环境,再安装一下试试。

3.1 新建python3.7环境

conda create -n atari-test python=3.7

3.2 安装gym

pip install gym[atari]

3.3 安装atari_py

在连接:https://github.com/Kojoley/atari-py/releases 处下载源码:
linux安装atari环境实录_第11张图片

解压,进入解压后的文件夹。

使用命令pip install -e .
linux安装atari环境实录_第12张图片
此时其实可以测试一下,但是我没有测试。

3.4安装numpy(以防万一)

主要是我新建的环境没有numpy,之前又遇到过这个错误,所以这里安一下,以防万一
pip install numpy==1.19.5

安装gym[accept-rom-license]

pip install gym[accept-rom-license]
linux安装atari环境实录_第13张图片
安装完之后,之前还有一个pyglet的库没有,所以这里提前安装一下,省得接下来测试报错。
pip install pyglet

测试(成功)

linux安装atari环境实录_第14张图片

四、步骤总结(嫌麻烦的同学直接空降这里)

我使用上述方法安装了两次,都成功了,主要步骤分为一下几步,但是,我没有尝试省略其中一些步骤会不会成功。
比如:直接安装gym[accept-rom-license],再安装atari_py。可以尝试一下。
还有:是否不安装cmake也可以。
这些都可以尝试一下。

上面方法的主要步骤:

  • 安装gym[atari]:pip install gym[atari]
  • 安装atari_py,下载解压压缩包:pip install -e .
  • 安装gym[accept-rom-license]pip install gym[accept-rom-license]
  • 安装其他可能用到的库(视情况可选):numpy(1.19.5版本)和pyglet

你可能感兴趣的:(linux,atari,强化学习)