zoukankan      html  css  js  c++  java
  • 一次漫长的代码复现经历

    最近一位外国友人在复现某个项目的代码时环境配置出了些问题,找我帮忙解决。说实话,游戏和增强学习这两方面我都不是很熟悉,但好在对 Ubuntu 还算熟悉,前前后后折腾了好久,终于让程序顺利运行了起来。不得不说,这些深度学习的环境配置起来真是让人心烦,各种库的版本层出不穷,一着不慎满盘皆输,但我们又能怎么办呢,只能硬着头皮冲鸭!

    项目地址戳此——Minecraft-Reinforcement-Learning

    安装环境
    Ubuntu 16.04
    Python 3.6
    malmo0.34.0
    gym
    0.7.4
    minecraft-py0.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」!
    seniusen

  • 相关阅读:
    js的构造函数和原型
    js之window
    js之字符串需要应用正则表达式的方法
    javascript学习心得之字符串
    javascript学习心得之数组
    WPF_MahApps.Metro界面主题使用
    QT控件----tableWidget的常规使用
    C#欢迎画面显示程序启动进度条,并自动打开主界面
    基于VS的QT第一个桌面程序(UI与后端绑定)
    基于QT第一个桌面程序(图标及背景等资源设置)
  • 原文地址:https://www.cnblogs.com/seniusen/p/9759667.html
Copyright © 2011-2022 走看看