参考了的文章:
这两个我参考了,但是都没有成功。
其他关于一些bug的参考在文中有链接。
命令:conda create -n atari-env python=3.6
先执行下面命令:
sudo apt-get install update && sudo apt-get install upgrade && sudo apt-get install build-essential
sudo apt-get install cmake
sudo apt-get install zlib1g-dev
pip install gym[atari]
这一行命令很有可能是无法正常安装的,下面是遇到的各种问题,有些是因为我的环境本身的问题,与gym无关。
参考:【已解决】Could not get lock /var/lib/dpkg/lock-frontend
pip用不了
解决办法就是重装pip,参考:pip安装出现FileNotFoundError: [Errno 2] No such file or directory: ‘/Disk/D/software/anaconda3/lib/pytho
在测试atari的时候,numpy又报错了,导入失败,卸载重装即可。
在解决了numpy等问题之后,再次测试,又报错,经查,显示需要python3.7,或者gym版本降为0.20.0。0.21.0是不支持python3.6的。
conda create -n atari-env python=3.7
pip install numpy==1.19.5
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环境里面没有这个新版的游戏。
1:pip uninstall atari_py
1:pip install --no-index -f https://github.com/Kojoley/atari-py/releases atari_py
但是,遇到下面的问题,找不到对应的版本。
pip install atari-py
下载是成功了,但是还是报错(最后遇到的还是这个报错,这个报错是可以解决的,但是atari-py安装的版本是0.2的):
没办法,先卸载这个。
pip uninstall atari-py
前面提到过这个链接:https://github.com/Kojoley/atari-py/releases
里面都是win系统的whl文件,没有linux系统,但是下面又sourcecode的压缩包,先下载下来解压再说。
然后进入解压后的压缩包。
pip install -e .
赶紧测试一发:
很遗憾,还是之前的报错:
根据提示,那就添加一个[accept-rom-license]
试试
pip install gym[accept-rom-license]
稍等一会之后,下载安装完成:
赶紧再测试一发:
报错没有pyglet这个库,问题不大,安装一下。
pip install pyglet
再次测试,终于成功了!!!!!!
上面第二节虽然安装成功了,但是,整个过程可以说是十分曲折,很多步骤可能是多余的,所以,为了测试,我新建一个环境,再安装一下试试。
conda create -n atari-test python=3.7
pip install gym[atari]
在连接:https://github.com/Kojoley/atari-py/releases 处下载源码:
解压,进入解压后的文件夹。
使用命令pip install -e .
此时其实可以测试一下,但是我没有测试。
主要是我新建的环境没有numpy,之前又遇到过这个错误,所以这里安一下,以防万一
pip install numpy==1.19.5
pip install gym[accept-rom-license]
安装完之后,之前还有一个pyglet
的库没有,所以这里提前安装一下,省得接下来测试报错。
pip install pyglet
我使用上述方法安装了两次,都成功了,主要步骤分为一下几步,但是,我没有尝试省略其中一些步骤会不会成功。
比如:直接安装gym[accept-rom-license]
,再安装atari_py
。可以尝试一下。
还有:是否不安装cmake也可以。
这些都可以尝试一下。
上面方法的主要步骤:
pip install gym[atari]
pip install -e .
gym[accept-rom-license]
:pip install gym[accept-rom-license]
numpy
(1.19.5版本)和pyglet