一次漫長的代碼復現經歷
阿新 • • 發佈:2018-10-09
文件 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」!
一次漫長的代碼復現經歷