最近一位外国友人在复现某个项目的代码时环境配置出了些问题,找我帮忙解决。说实话,游戏和增强学习这两方面我都不是很熟悉,但好在对 Ubuntu 还算熟悉,前前后后折腾了好久,终于让程序顺利运行了起来。不得不说,这些深度学习的环境配置起来真是让人心烦,各种库的版本层出不穷,一着不慎满盘皆输,但我们又能怎么办呢,只能硬着头皮冲鸭!
项目地址戳此——Minecraft-Reinforcement-Learning
安装环境
Ubuntu 16.04
Python 3.6
malmo==0.34.0
gym==0.7.4
minecraft-py==0.0.2
gym-minecraft==0.0.2
pygame==1.9.4.dev0
1. 安装 Malmo 和相关依赖库
wget https://github.com/Microsoft/malmo/releases/download/0.34.0/Malmo-0.34.0-Linux-Ubuntu-16.04-64bit_withBoost_Python3.5.zip
unzip Malmo-0.34.0-Linux-Ubuntu-16.04-64bit_withBoost_Python3.5.zip
mv Malmo-0.34.0-Linux-Ubuntu-16.04-64bit_withBoost_Python3.5 Malmo
cp -r Malmo ~ # 移动文件夹到任意位置即可
sudo apt-get install libboost-all-dev libpython2.7 openjdk-8-jdk lua5.1 libxerces-c3.1 liblua5.1-0-dev ffmpeg python-tk python-imaging-tk
sudo update-ca-certificates -f
2. 安装 OpenAI gym
whereis pip
> pip: /usr/local/bin/pip2.7 /usr/local/bin/pip3.6 /usr/local/bin/pip /home/lab/anaconda3/bin/pip3.6 /home/lab/anaconda3/bin/pip /usr/share/man/man1/pip.1.gz
sudo /usr/local/bin/pip3.6 install gym==0.7.4
- 如果有多个版本的 pip,需要指定具体路径,然后安装 gym 0.7.4
3. 安装 minecraft_py
git clone https://github.com/tambetm/minecraft-py.git
cd minecraft-py
cp -r ../Malmo/Minecraft/ minecraft_py/Malmo
cp -r ../Malmo/Mod/ minecraft_py/Malmo
cp -r ../Malmo/Python_Examples/ minecraft_py/Malmo
cp -r ../Malmo/Schemas/ minecraft_py/Malmo/
# 复制第一步 Malmo 文件夹下的 Minecraft、Mod、Python_Examples 和 Schemas 到 minecraft_py/Malmo 下
sudo /usr/bin/python3.6 setup.py install
- 若直接安装会报以下错误
warning: no directories found matching 'minecraft_py/Malmo/Minecraft'
warning: no directories found matching 'minecraft_py/Malmo/Mod'
warning: no directories found matching 'minecraft_py/Malmo/Python_Examples'
warning: no directories found matching 'minecraft_py/Malmo/Schemas'
4. 安装 gym-minecraft
cd ..
git clone https://github.com/tambetm/gym-minecraft.git
cd gym-minecraft
sudo /usr/bin/python3.6 setup.py install
5. 安装 Pygame
sudo apt-get install mercurial python3-dev python3-setuptools python3-numpy python3-opengl \
libav-tools libsdl-image1.2-dev libsdl-mixer1.2-dev libsdl-ttf2.0-dev libsmpeg-dev \
libsdl1.2-dev libportmidi-dev libswscale-dev libavformat-dev libavcodec-dev \
libtiff5-dev libx11-6 libx11-dev fluid-soundfont-gm timgm6mb-soundfont \
xfonts-base xfonts-100dpi xfonts-75dpi xfonts-cyrillic fontconfig fonts-freefont-ttf
cd ..
hg clone https://bitbucket.org/pygame/pygame
cd pygame
sudo /usr/bin/python3.6 setup.py build
sudo /usr/bin/python3.6 setup.py install
6. 添加 ScoreBoard 到 Gym
wget https://github.com/openai/gym/archive/v0.7.4.zip
unzip v0.7.4.zip
sudo cp -r gym-0.7.4/gym/scoreboard /usr/local/lib/python3.6/dist-packages/gym/
7. 添加环境变量
echo "export MALMO_XSD_PATH=/usr/local/lib/python3.6/dist-packages/minecraft_py-0.0.2-py3.6.egg/minecraft_py/Malmo/Schemas" >> ~/.bashrc
source ~/.bashrc
8. 一些问题
- 此时,可以先尝试运行
/usr/local/lib/python3.6/dist-packages/minecraft_py-0.0.2-py3.6.egg/minecraft_py/Malmo/Minecraft
下的 launchClient.sh,如果能成功运行的话基本没什么问题。若是遇到一些权限的问题,也可以在/usr/local/lib/python3.6/dist-packages/minecraft_py-0.0.2-py3.6.egg/minecraft_py/__init__.py
文件中更改两个路径为第一步时解压后的文件夹路径。
malmo_xsd_path = '/media/lab/data/yongsen/pygame/Malmo/Schemas'
malmo_dir = '/media/lab/data/yongsen/pygame/Malmo'
- 如果有库依赖的报错,只需要安装对应依赖即可。
比如 ImportError: cannot import name '_psutil_linux',sudo /usr/local/bin/pip3.6 install psutil
获取更多精彩,请关注「seniusen」!