关于在远端服务器运行基于图像的dm_control的问题及解决方案

  1. 主要是针对dm_control中的dmc2gym。但应该也是适用于其他需要render()的环境。
  2. 在安装好dmc2gym,运行时,在render()时出现:

解决方法:
先在简单场景下测试:

发现仍报错:

经查找相关信息,发现在安装mujoco_py时便出现这个问题。

经请教,有2种办法:

  1. xvfb-run -s "-screen 0 1400x900x24" xxx.py


即在代码中添加:
from pyvirtualdisplay import Display
disp = Display()
disp.start()
该方法时可以成功的,在main()函数开始处添加即可,否则容易造成程序锁死。

后在github.com/openai/mujoco-py/issues/172 找到第3种方法:
在.zshrc中添加:
export LD_PRELOAD=/usr/lib/x86_64-linux-gnu/libGLEW.so
xvfb-run -a -s "-screen 0 1400x900x24" bash(注意这里应改为 zshrc)

失败

最终方法:
受github.com/openai/mujoco-py/issues/591 启发,尝试使用如下指令,最终成功:
xvfb-run python ***.py

但该方法需要远程服务器各节点安装xvfb, 该方法能运行成功,说明对应节点已安装相应的包。

注意:无论是哪种方法,均无法加断点进行调试,只能print查看结果或者在本地调试。

posted @ 2022-05-29 01:42  呦呦南山  阅读(482)  评论(0编辑  收藏  举报