Search code examples
windows-subsystem-for-linuxpyvirtualdisplay

Pyvirtualdisplay under wsl2 : pyvirtualdisplay.abstractdisplay.XStartTimeoutError: No reply from program Xvfb


Here is the code I am using

from pyvirtualdisplay import Display    
virtual_display = Display(visible=0, size=(1400, 900))
virtual_display.start()

this results in

 XStartTimeoutError
No reply from program Xvfb. command:['Xvfb', '-br', '-nolisten', 'tcp', '-screen', '0', '1400x900x24', '-displayfd', '14']
  File "/home/vn/marl-interfere/render_mpe.py", line 134, in main
    virtual_display.start()
  File "/home/vn/marl-interfere/render_mpe.py", line 144, in <module>
    main(sys.argv[1:])
pyvirtualdisplay.abstractdisplay.XStartTimeoutError: No reply from program Xvfb. command:['Xvfb', '-br', '-nolisten', 'tcp', '-screen', '0', '1400x900x24', '-displayfd', '14']

xvfb seems to be running.


Solution

  • This worked for me (windows 11, wsl ubuntu 20.04)

    import os
    os.environ['PYVIRTUALDISPLAY_DISPLAYFD'] = '0'
    
    from pyvirtualdisplay import Display
    display = Display(visible=0, size=(1400, 900))
    display.start()
    

    from this issue https://github.com/ponty/PyVirtualDisplay/issues/84