前提
Windows環境での詳しいOpenAI Gym 環境構築手順は、あちこちで記載されているので適当にぐぐってください。なお古いサイトでは『bash on windows』 とか 『Bash on Ubuntu on Windows』などと説明されているページが多いですが、正式名称が『Windows Subsystem for Linux 』となったので読み替えて環境構築してください。
WSL+Ubuntu 環境が構築されていること
- Windows Subsystem for Linux(WSL) 環境が構築されている。
- WSLの上にUbuntu 16.04 がインストールされていること。
WindowsにLinuxのGUIアプリが表示できること。
- sudo apt-get install x11-apps を実行済み。
- export DISPLAY=localhost:0.0 を実行済み。
- VcXsrv Windows X Server がインストールされている。→xeyes& で目玉がでる。
Anaconda3 環境が構築されていること。
- Anaconda3 環境が構築されている。→ python を実行すると Python 3.6.5 となる
- conda update conda を実行済みのこと
- conda update --all を実行済みのこと
OpenAI Gym 環境の構築
- sudo pip install gym
- sudo pip install -U git+https://github.com/Kojoley/atari-py.git
- sudo pip install gym[atari]
を実行する。
sudo pip xxxx でエラーが発生する
エラー内容
sudo pip xxxx
sudo: pip: コマンドが見つかりません
または
sudo: pip: command not found
と表示される。なお、which コマンドでチェックすると
which pip
/home/username/.pyenv/shims/pip
which sudo
/usr/bin/sudo
と、ちゃんと見える。
対処方法
sudo したときのパスとログインユーザのパスが違う。sudo の時にパスが見えていないのでパスを引き継ぐように変更する。
/etc/sudoers ファイルを開いて、secure_pathをコメントアウトして、env_keepにPATHを追加すればよい。
Defaults env_reset
#Defaults secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults env_keep += "PATH"
なお、vi /etc/sudoers とすると
"/etc/sudoers" [権限がありません]
などと表示されるので、sudo vi /etc/sudoers とする必要がある。
pip をバージョンアップしようとするとエラーが出力される
エラー内容
pip install -U pip
Requirement already up-to-date: pip in ./.pyenv/versions/anaconda3-5.2.0/lib/python3.6/site-packages (10.0.1)
distributed 1.21.8 requires msgpack, which is not installed.
対処方法
msgpack をインストールする。
pip install msgpack
sudo pip install -U git+https://github.com/Kojoley/atari-py.git でエラーが発生する
エラー内容
unable to execute 'gcc': No such file or directory
error: command 'gcc' failed with exit status 1
対処方法
gcc など開発環境をインストールする。
sudo apt-get install build-essential
sudo apt-get install python3-pip でエラーが発生する
anaconda をインストールしていればpip はインストール済なので本来は apt-get で pip のインストールは不要。
エラー内容
E: Unable to locate package python-pip
というエラーが発生する。
対処方法
sudo apt-get update
で最新化した後に
sudo apt-get install python3-pip
を実行する。
OpenAI Gym のサンプルでエラーが発生する
エラー内容
のサンプルコードを実行すると
ImportError: Library "GL" not found.
というエラーが発生する。
対処方法
sudo apt-get install python-opengl
を実行する。
エラー内容
raise NoSuchDisplayException('Cannot connect to "%s"' % name)
pyglet.canvas.xlib.NoSuchDisplayException: Cannot connect to "None"
というようなエラーが出力されて画面に表示されない。
対処方法
Windows側でXサーバが起動されていないのでサンプルアプリの実行まえに起動しておくこと。
インベーダゲームを動かす
にある
env = gym.make('CartPole-v0')
を
env = gym.make('SpaceInvaders-v0')
に変更して適当な名前で保存してpythonを実行するだけです。
例えば、invaders.py として下記ソースを保存して
import gym
env = gym.make('SpaceInvaders-v0')
env.reset()
for _ in range(1000):
env.render()
env.step(env.action_space.sample())
python invaders.py
と実行する。
その他のAtariゲーム
を参考に!