关于在远端服务器运行基于图像的dm_control的问题及解决方案
- 主要是针对dm_control中的dmc2gym。但应该也是适用于其他需要render()的环境。
- 在安装好dmc2gym,运行时,在render()时出现:
解决方法:
先在简单场景下测试:
发现仍报错:
经查找相关信息,发现在安装mujoco_py时便出现这个问题。
经请教,有2种办法:
- 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查看结果或者在本地调试。