Windows
OpenAIGym

Windows10 に OpenAI Gym のサンプルを動作させるまでに発生したエラー対処方法の覚書

前提

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 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 のサンプルでエラーが発生する

エラー内容

https://gym.openai.com/docs/#environments

のサンプルコードを実行すると

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サーバが起動されていないのでサンプルアプリの実行まえに起動しておくこと。

インベーダゲームを動かす

https://gym.openai.com/docs/#environments

にある
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

と実行する。

invaders.png

その他のAtariゲーム

https://gym.openai.com/envs/#atari

を参考に!