引用自https://blog.csdn.net/clksjx/article/details/84144655
pygame或者openAI的一些训练环境都是需要显示画面的。
但是大型服务器一般都没有屏幕,此时运行程序会报错。我们需要使程序能在没有屏幕的情况下运行,一般有以下几种办法。
-
删除显示画面的语句。有些程序是render()函数控制是否显示画面,这种直接注释掉render即可。但有些程序是通过其他方式显示画面的,比如pygame.display.update(),因为它牵涉到很多语句,所以一句一句的注释太麻烦。
-
将屏幕设置为dummy。
import os
os.environ["SDL_VIDEODRIVER"] = "dummy"
- 利用xvfb,和“dummy”相比,该方法可以使程序正常获取屏幕上的图像。
xvfb-run -a -s "-screen 0 1400x900x24 +extension RANDR" -- python main.py
- 其他
sudo apt-get update
sudo apt-get install -y xorg xvfb firefox dbus-x11 xfonts-100dpi xfonts-75dpi xfonts-cyrillic
Xvfb -ac :7 -screen 0 1280x1024x8 > /dev/null 2>&1 &
export DISPLAY=:7