1.  安装xvfb

sudo apt-get install xvfb

Xvfb是流行的虚拟现实库,可以使很多需要图形界面的程序虚拟运行。

2. 安装pyvirtualdisplay

pyvirtualdisplay 是Xvfb的 python 封装。

pip install pyvirtualdisplay

3.  在 Ubuntu 上安装 OpenGL Library

sudo apt-get install libgl1-mesa-dev

4.  安装 python-opengl

sudo apt-get install python-opengl

注:

如果不安装 python-opengl 运行图形显示的应用时报错:

测试代码:

from pyvirtualdisplay import Display
import gym display = Display(visible=0, size=(1024, 768))
display.start() env_id = "CartPole-v0"
env = gym.make(env_id) env.reset()
env.render() display.stop()

如果只是为了在服务器上把具有图像显示功能的程序跑起来的话那么上面的内容就可以了,但是一般需要使用在服务器上运行图像显示功能的应用一般都是运行爬虫和运维等需求,但是在机器学习中则是主要在使用open_ai下的gym来运行可以显示图像的应用,下面部分介绍使用jupyter notebook在web端播放openai的gym下保存的运行视频。(注意:本文中所介绍的所有功能和方法都不支持与服务器虚拟显示下图像界面进行交互的功能)

=====================================================

使用jupyter查看openai的gym下保存的运行视频:

1.  安装视频编解码工具  ffmpeg

sudo apt install ffmpeg

经过验证在Ubuntu18.04系统中使用系统安装ffmpeg容易报错,如下:

Unknown encoder 'libx264'的解决方法

 

https://blog.csdn.net/wmm3525/article/details/105792620

于是,使用conda 安装  ffmpeg :

conda install ffmpeg

conda uninstall ffmpeg

测试代码:

from pyvirtualdisplay import Display
import gym display = Display(visible=0, size=(1024, 768))
display.start() env_id = "CartPole-v0"
env = gym.make(env_id)
env = gym.wrappers.Monitor(env, "videos", force=True) env.reset() while True:
env.render()
state, reward, end_flag, info = env.step(env.action_space.sample())
print(state, reward, end_flag, info)
if end_flag == True:
break display.stop()

成功运行,可以查看到保存的视频文件:

2.   安装  ipython

 pip install ipython

测试代码:

import base64
import glob
import io
import os from IPython.display import HTML, display def ipython_show_video(path: str) -> None:
"""Show a video at `path` within IPython Notebook."""
if not os.path.isfile(path):
raise NameError("Cannot access: {}".format(path)) video = io.open(path, "r+b").read()
encoded = base64.b64encode(video) display(HTML(
data="""
<video alt="test" controls>
<source src="data:video/mp4;base64,{0}" type="video/mp4"/>
</video>
""".format(encoded.decode("ascii"))
)) list_of_files = glob.glob("videos/*.mp4")
latest_file = max(list_of_files, key=os.path.getctime)
print(latest_file)
ipython_show_video(latest_file)

备注:需要在测试文件所在文件夹下面建立 videos 文件夹,并且在videos文件夹下面需要有 mp4文件。

Ubuntu Server无桌面无显示器情况下虚拟屏幕xvfb的安装及设置—ubuntu18.04server服务器系统下为python安装虚拟显示器 (使用jupyter notebook在web端播放openai的gym下保存的运行视频——需安装ipython)的更多相关文章

  1. 在Linux服务器上运行Jupyter notebook server教程

    在Linux服务器上运行Jupyter notebook server教程 很多deep learning教程都推荐在jupyter notebook运行python代码,方便及时交互.但只在本地运行 ...

  2. Ubuntu Server VS Ubuntu Desktop区别

    今天有位朋友问我,Ubuntu Server 与 Ubuntu Desktop的区别在哪里!区别如下: SERVER没有GUI SERVER没有一堆的桌面软件 SERVER在编译时使用的参数不一样,会 ...

  3. Ubuntu Server 与 Ubuntu Desktop区别

    今天有位朋友问我,Ubuntu Server 与 Ubuntu Desktop的区别在哪里!区别如下: SERVER没有GUI SERVER没有一堆的桌面软件 SERVER在编译时使用的参数不一样,会 ...

  4. windows10 下安装tensorflow 并且在jupyter notebook 上使用tensorflow

    一.安装jupyter notebook并配置环境 首先建议大家安装anaconda,最新版本请到官网下载(点击下载连接),没错,直接点击下载python3.6版本的(当然选择做自己电脑相应的位数,我 ...

  5. ubuntu 14.04 桌面版关闭图形界面

    ubuntu 14.04 桌面版关闭图形界面 问题: 怎样将ubuntu14.04设置为文本模式启动? 解决方式: 改动改GRUB 的配置文件(不建议直接改 grub.conf) $sudo vim ...

  6. django下创建多个app,如何设置每个app的urls

    1.创建第二个app 假设我们项目P下面已经有了一个默认的app,名字是app1.现在我想创建第二个app,名字时app2. 进入pychram下的Terminal中,运行命令: python man ...

  7. 在linux下配置jupyter notebook,本地浏览器访问

    1.安装jupyter notebook pip install jupyter 2.生成配置文件 jupyter notebook --generate-config 3.设置登陆密码并生成秘钥 s ...

  8. 基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境

    基于Ubuntu+Python+Tensorflow+Jupyter notebook搭建深度学习环境 前言一.环境准备环境介绍软件下载VMware下安装UbuntuUbuntu下Anaconda的安 ...

  9. Ubuntu安装Jupyter Notebook

    一.Jupyter介绍 Jupyter Notebook是一个交互式笔记本,支持运行40多种编程语言.Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支 ...

  10. 全真教程:Windows环境Jupyter Notebook安装、运行和工作文件夹配置

    全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 @ 目录 全真教程:Windows环境Jupyter Notebook安装.运行和工作文件夹配置 一.Jupyt ...

随机推荐

  1. 3代 I3 3220 对比12代 G6900 测试 入手 上手 评测

    3代 I3 3220 对比12代 G6900 测试 入手 上手 评测 I3 3220 的CPU-Z ,和cinebench r23 跑分. G6900 的CPU-Z ,和cinebench r23 跑 ...

  2. H5弹窗底层滑动

    H5弹窗底层滑动 背景 产品提出H5 弹出窗滑动时,底层页面也会跟随滑动,需要调整禁止底层滑动,增加用户体验. 问题产生原因 ios 滑动时有回弹效果 顶层元素滑动默认行为 解决办法 阻止元素的默认( ...

  3. 开箱即用的Live2d

    安装 npm i @tomiaa/live2d 代码 <template> <div ref="live2dContentRef" id="live2d ...

  4. Linux特殊权限之SUID,SGID

    SUID定义 暂时借用属主身份运行二进制程序.(SGID则是借用属组) 应用场景 某些用户在运行二进制程序的过程中,没有权限访问此二进制程序中其他的一些文件.给此用户过高的权限又不安全. 比如,每个用 ...

  5. 你了解Vim的增删改查吗 ?

    增: 在Vim的Normal模式中输入A/I/O,a/i/o字符进行对应的增加操作. 删 在Vim的Normal模式中, 输入x 删除光标对应的一个字符(4x代表删除4个字符): 输入dd删除光标所在 ...

  6. Electron 的 安装

    背景 因为搞嵌入式开发的时候,每次烧写不同版本的固件的时候,经常需要重命名,有时候烧错版本我也不知道: 因此我认为对固件的管理比较麻烦,所以我希望能够有一个比较好的工具来做管理,找了一圈没有发现合适的 ...

  7. 基于RK3588的8K视频解码显示案例分享!引领超高清工业视频时代

    8K.4K.2K显示对比 2K分辨率:也称为全高清(FULL HD),它具有1920 x 1080像素的分辨率.这是目前大多数消费者电视和电脑显示器的标准分辨率,可以提供良好的图像质量. 4K分辨率: ...

  8. 可重入锁思想,设计MQ迁移方案

    如果你的MQ消息要从Kafka切换到RocketMQ且不停机,怎么做?在让这个MQ消息调用第三方发奖接口,但无幂等字段又怎么处理?今天小傅哥就给大家分享一个关于MQ消息在这样的场景中的处理手段. 这是 ...

  9. Canvas绘制圆角图片

    效果图: 思路: 先绘制一个圆角长方形 在画布中裁剪下来 在圆角长方形内绘制图片 图片四个角超出圆角长方形的区域被隐藏 具体代码: <!DOCTYPE html> <html lan ...

  10. k8s实战 ---- pod 基础

    如果你对k8s还不了解,可以看下前文 k8s 实战 1 ---- 初识       (https://www.cnblogs.com/jilodream/p/18245222) 什么是pod,pod在 ...