Ubuntu22.04系统安装DeepMind Lab
相关资料:
DeepMind Lab的一些python例子—————(Ubuntu22.04系统安装DeepMind Lab)后续
===================================================
2022年10月7日更新
虽然使用自编译的python环境可以成功安装并运行deepmind lab,但是后期要安装TensorFlow-Gpu等组件,却异常的困难,为彻底解决anaconda下不能安装并运行deepmind lab的问题,给出具体方法:
Ubuntu系统anaconda报错version `GLIBCXX_3.4.30' not found
通过上面的对stdc++库的修正成功在anaconda环境下安装并运行deepmind lab,因此实现了在anaconda创建的python环境下成功安装deepmind_lab和TensorFlow-gpu等组件。
===================================================
2022年10月6日更新
根据尝试,发现只要把系统的依赖软件安装好,即使是使用anaconda创建的python环境依然可以成功编译DeepMind Lab,并且安装python扩展库,而且anaconda创建的python环境从3.7版本到3.10版本均可以成功编译DeepMind Lab并安装python扩展库。
不过使用anaconda创建的python安装好Deepmind Lab扩展库后运行,报错:

这么看来,安装DeepMind Lab的python环境还是需要从python源码重新编译python(如下面的介绍的步骤),不过可以编译python3.10版本的。
测试代码:
import deepmind_lab
import numpy as np # Create a new environment object.
lab = deepmind_lab.Lab("demos/extra_entities", ['RGB_INTERLEAVED'],
{'fps': '30', 'width': '80', 'height': '60'})
lab.reset(seed=1) # Execute 100 walk-forward steps and sum the returned rewards from each step.
print(sum([lab.step(np.array([0,0,0,1,0,0,0], dtype=np.intc)) for i in range(0, 100)]))
========================================
说明:
DeepMind Lab的推出时间为2016年,而且已经多年没有维护更新了,但是使用这个仿真环境的Reinforcement Learning的研究还在继续,这就导致很多researcher需要继续使用,但是又没有很好的办法来安装这个仿真环境,毕竟谁也不太想为了安装这个仿真环境而去把自己的Ubuntu22.04系统换成Ubuntu14.04或者Ubuntu16.04系统,因此如何在Ubuntu22.04系统上安装DeepMind Lab这个仿真环境成了一个难题。本文就是接受如何在Ubuntu22.04系统上成功安装DeepMind Lab仿真环境。

================================================
1. CMAKE的安装:
https://www.cnblogs.com/devilmaycry812839668/p/14943981.html
2. bazel的安装:
https://www.cnblogs.com/devilmaycry812839668/p/16282270.html
安装好bazel后需要对.bazelrc文件进行配置,具体见:
bazel编译报错:absl/base/policy_checks.h:79:2: error: #error "C++ versions less than C++14 are not supported."
3. python3.7的源码安装:
https://www.cnblogs.com/devilmaycry812839668/p/16281134.html
需要注意的是与上面教程中不同,我们需要checkout的版本为3.7。(因为DeepMind Lab只支持python3.5,python3.6,python3.7,考虑尽可能高的python版本,因此选择python3.7)
具体的版本检出命令为:
git checkout 3.7
至于为什么不使用anaconda创建python环境呢,参见:
为python编译C++模块时一定要注意的事情—————不要在anaconda环境下使用cmake来编译C++扩展模块!!!
4. 安装python的依赖库
pip install numpy
pip install wheel
5. 安装系统环境依赖
sudo apt-get install libffi-dev gettext freeglut3-dev libsdl2-dev zip libosmesa6-dev
============================================
6. DeepMind Lab源码编译
下载源码:
git clone https://github.com/deepmind/lab
编译并运行例子:
cd lab
bazel run :python_random_agent --define graphics=sdl -- --length=10000 --width=640 --height=480

可以成功运行,证明依赖环境安装成功。
其他运行例子见:https://github.com/deepmind/lab
=================================================
7. DeepMind Lab的python的扩展库的编译和安装
(python扩展库的安装参考:https://github.com/deepmind/lab/blob/master/python/pip_package/README.md)
目标是最终在python中可以成功调用:
import deepmind_lab
需要注意,在之前配置python3.7环境时需要将pip默认路径设置为编译好的 python3.7/bin/pip3 。
安装依赖的python模块:
pip install dm-env
为python3版本编译可安装的wheel文件,具体操作:
编译:
bazel build -c opt --python_version=PY3 //python/pip_package:build_pip_package
打包编译好的文件为wheel格式:
./bazel-bin/python/pip_package/build_pip_package /tmp/dmlab_pkg

查看wheel文件是否成功导出:

安装编译好的wheel文件:
pip install /tmp/dmlab_pkg/deepmind_lab-1.0-py3-none-any.whl

查看deepmind_lab模块是否安装成功:

=============================================
Ubuntu22.04系统安装DeepMind Lab的更多相关文章
- 64位ubuntu16.04系统安装网易云音乐
64位ubuntu16.04系统安装网易云音乐 1.官网下载安装包:netease-cloud-music_1.1.0_amd64_ubuntu.deb https://music.163.com/# ...
- 常用增强学习实验环境 I (MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2) (转载)
原文地址:http://blog.csdn.net/jinzhuojun/article/details/77144590 和其它的机器学习方向一样,强化学习(Reinforcement Learni ...
- Ubuntu下常用强化学习实验环境搭建(MuJoCo, OpenAI Gym, rllab, DeepMind Lab, TORCS, PySC2)
http://lib.csdn.net/article/aimachinelearning/68113 原文地址:http://blog.csdn.net/jinzhuojun/article/det ...
- Ubuntu22.04 安装配置流水账
前两天为了测一个CH340的bug, 装了三遍20.04. bug解决完, 心想反正也要重新装各种软件, 不如直接装22.04吧. 把涉及的安装记录一下方便将来参考. 制作启动U盘 在Ubuntu网站 ...
- Ubuntu22.04 安装配置VNC Server
如果转载, 请注明出处 https://www.cnblogs.com/milton/p/16730512.html Ubuntu22.40下VNC和远程桌面的区别 使用远程桌面时, 用户必须在hos ...
- 带有pwn环境的Ubuntu22.04快速安装
pwn环境ubuntu22.04快速安装(有克隆vmk) ubuntu更新到了22.04版本,经过本人测试后非常的好(ma)用(fan),该版本和mac很相像,而且用起来也比较丝滑,只不过配置上稍微有 ...
- ubuntu22.04安装 kubernetes(docker)
初始化检查 操作系统:ubuntu22.04 LTS docker:20.10.18 kubelet: v1.23.6 kubeadm:v1.23.6 kubectl: v1.23.6 1.校准时间: ...
- Ubuntu22.04 KubeSphere 安装K8S集群
Ubuntu22.04 KubeSphere 安装K8S集群_Ri0n的博客-CSDN博客 一.系统环境系统:Ubuntu 22.04集群IP分布hostname 角色 IP地址master mast ...
- ubuntu18.04系统安装及php7.2,apache2,mysql8,git,svn,composer,vs code 到安装 php 扩展配置php.ini 实现 laravel5.8 运行
简介:记录自己从系统安装到环境配置完毕运行laravel的记录 • 下载ubuntu18.04桌面版 ○ ubuntu18.04中国官网 https://cn.ubuntu.com ...
- 64位ubuntu16.04系统安装tensorflow_cpu
ubuntu16.04安装tensorflow_cpu 一.安装anaconda: ①.下载anaconda包:Anaconda3-5.2.0-Linux-x86_64.sh 这是python3.6. ...
随机推荐
- 基于redis的选主功能设计
需求背景 在JAVA应用开发过程中,越来越多的项目采用了微服务架构,而采用微服务架构最直接作用是可以实现业务层解耦,有利于研发团队可以从业务层面进行划分,比如某几个人的小团队负责某几个微服务,总之,从 ...
- 在线RSA签名工具
在线RSA签名工具支持多种RSA签名算法,包括RSA-MD5.RSA-SHA1.RSA-SHA224.RSA-SHA256.RSA-SHA384和RSA-SHA512.用户只需上传需要签名的数据和私钥 ...
- java对列表分页的方法,及mysql分页的sql原型
java对列表分页的方法,及mysql分页的sql原型 1.mysql * mysql分页查询: * select <include refid="Base_Column_List&q ...
- python 第一次主要是if while 奇偶数的练习
例如输出1-10的数字,但是7除外. a=1 while a < 11: if a == 7: pass else: print(a) a=a+1 输出1-100所以的偶数 a=1 while ...
- 一次STM32进入HardFault_Handler 的解决情况
STM32进入HardFault_Handler调试 --- title: STM32进入HardFault_Handler调试 date: 2020-06-18 10:26:48 categorie ...
- IPv6地址的文本表示规范
背景 随着IPv6越来越普及,经常要跟IPv6地址打交道,迫切需要一个统一的IPv6地址文本表示规范. RFC4291简单的说明了如何将IPv6地址表示成文本形式,但有很多有歧义和不周全的地方. RF ...
- UF_MB_ask_button_id 测试
# tesy UF_MB_ask_button_id import NXOpen import NXOpen_UF as nuf def main(): ses = NXOpen.Session.Ge ...
- Java高效率查询Mysql节点树数据
示例 目前有一个功能:任务计划管理,必然存在多级子任务的父子级关系,每个任务还会存在其它数据的关联表. mysql无法一次性递归查出想要的数据结构,想必很多人都会是通过根目录递归查询数据库的方式查出树 ...
- java生成word的解决方案比较
1.Jacob Jacob是Java-COM Bridge的缩写,它在Java与微软的COM组件之间构建一座桥梁.通过Jacob实现了在Java平台上对微软Office的COM接口进行调用. 优点:调 ...
- C# 线程与进程
一.前台线程与后台线程对象 为什么要用多线程? 1.让计算机"同时"做多件事情,节约时间. 2.多线程可以让一个程序"同时"处理多个事情. 3.后台运行程序,提 ...