[解决方法] 如何在没有屏幕的情况下训练一些需要显示的程序

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/clksjx/article/details/84144655

pygame或者openAI的一些训练环境都是需要显示画面的。
但是大型服务器一般都没有屏幕,此时运行程序会报错。我们需要使程序能在没有屏幕的情况下运行,一般有以下几种办法。

  1. 删除显示画面的语句。有些程序是render()函数控制是否显示画面,这种直接注释掉render即可。但有些程序是通过其他方式显示画面的,比如pygame.display.update(),因为它牵涉到很多语句,所以一句一句的注释太麻烦。

  2. 将屏幕设置为dummy

    import os
    os.environ["SDL_VIDEODRIVER"] = "dummy"
    
  3. 利用xvfb,和“dummy”相比,该方法可以使程序正常获取屏幕上的图像。

    xvfb-run -a -s "-screen 0 1400x900x24 +extension RANDR" -- python main.py
    
  4. 其他。

    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
    

猜你喜欢

转载自blog.csdn.net/clksjx/article/details/84144655