1. 程式人生 > >一次漫長的代碼復現經歷

一次漫長的代碼復現經歷

文件 python -a lua one score init codec cer

最近一位外國友人在復現某個項目的代碼時環境配置出了些問題,找我幫忙解決。說實話,遊戲和增強學習這兩方面我都不是很熟悉,但好在對 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」!
技術分享圖片

一次漫長的代碼復現經歷