1. 程式人生 > >[解決方法] 如何在沒有螢幕的情況下訓練一些需要顯示的程式

[解決方法] 如何在沒有螢幕的情況下訓練一些需要顯示的程式

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