如果在没有图形用户界面(GUI)的服务器上运行需要可视化的软件或库(如`aitviewer`或其他3D可视化工具),需要使用某种"虚拟"的显示系统。在Linux环境中,最常用的这种系统是X虚拟帧缓冲(Xvfb)。
Xvfb模拟了X服务器的存在,而实际上并没有显示任何东西。这使得你可以在没有物理显示的服务器上运行需要图形环境的程序。
以下是如何使用Xvfb在没有GUI的服务器上运行需要可视化的应用程序:
1. 安装Xvfb:
对于大多数Linux发行版,你可以使用包管理器安装Xvfb。例如,在Debian或Ubuntu上:
sudo apt-get install xvfb
2. 启动Xvfb:
首先启动一个Xvfb进程,确定端口号99
Ps:启动后会占用整个shell
Xvfb :99
3.运行需要的程序
添加环境变量,并运行
export DISPLAY=:99
python vis_meshes.py --data_root==/home/X-Avatar/outputs/XHumans_smplx/00019_scan/meshes_test
或者代码中加入
import os
os.environ['DISPLAY'] = ':99'
File "/root/miniconda3/envs/xavatar/lib/python3.7/site-packages/aitviewer/viewer.py", line 148, in __init__
cursor=True,
File "/root/miniconda3/envs/xavatar/lib/python3.7/site-packages/moderngl_window/context/headless/window.py", line 24, in __init__
self.init_mgl_context()
File "/root/miniconda3/envs/xavatar/lib/python3.7/site-packages/moderngl_window/context/headless/window.py", line 41, in init_mgl_context
require=self.gl_version_code,
File "/root/miniconda3/envs/xavatar/lib/python3.7/site-packages/moderngl/__init__.py", line 2207, in create_standalone_context
ctx.mglo, ctx.version_code = mgl.create_context(glversion=require, mode=mode, **settings)
File "/root/miniconda3/envs/xavatar/lib/python3.7/site-packages/glcontext/__init__.py", line 90, in create
return x11.create_context(**kwargs)
Exception: (standalone) glXChooseFBConfig failed