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. leetcode-3-无重复字符的最长子串-javascript

    题目 给定一个字符串,请你找出其中不含有重复字符的 最长子串 的长度. 示例 1: 输入: "abcabcbb" 输出: 3 解释: 因为无重复字符的最长子串是 "abc ...

  2. 【干货分享】.NET人脸识别解决方案

    前言 前段时间有同学在DotNetGuide技术社区交流群提问:.NET做人脸识别功能有什么好的解决方案推荐的吗?今天大姚给大家推荐2款.NET开源.免费.跨平台.使用简单的人脸识别库,希望可以帮助到 ...

  3. SM4Utils加解密demo

    SM4Utils加解密demo package com.example.core.mydemo.sm4; import cn.org.bjca.utils.SM4Utils; public class ...

  4. mysql数据迁移-8.0.25

    本文只简单描述一些逻辑迁移的问题,而且主要是针对开发过程中,小批量数据(例如100m之下的). 这几天装了个新的mysql8.0.25 64bit windows版本的. -- 看的出来oracle公 ...

  5. 同时开启firewall和iptables

    使用向导 With the iptables service, every single change means flushing all the old rules and reading all ...

  6. [AGC020D] Min Max Repetition

    牛子题 优先满足第二个条件,长度是 \(\lceil \frac{max(A,B)}{min(A,B)+1}\rceil\) ,那么现在要满足字典序最小,发现先填 \(A..ABA..ABA..AB. ...

  7. paraview安装

    apt 安装 sudo apt install paraview 安装包安装 参考 https://blog.csdn.net/weixin_47492286/article/details/1272 ...

  8. 【韦东山】嵌入式全系统:单片机-linux-Android对硬件操作的不同侧重点

    我是韦东山,一直从事嵌入式Linux培训,最近打算连载一系列文章. 正在录制全新的嵌入式Linux视频,使用新路线,不再从裸机/uboot开始,效率更高. 对应文档也会写成书<<嵌入式Li ...

  9. makedown 笔记

    前言 记录一下自己经常忘的makedown指令,不断更新. makedown 添加空格  

  10. C#开发单实例应用程序并响应后续进程启动参数

    C#默认的WinForm模板是不支持设置单实例的,也没有隔壁大哥VB.NET那样有个"生成单个实例应用程序"的勾选选项(VB某些时候要比C#更方便),实现单实例可以有多种方法: 检 ...