Python XVFB error in windows

2019-02-17 09:06发布

问题:

For virtual Framebuffer (headless testing) I'm using Xvfb with PyVirtualDisplay and it's working fine in Ubuntu but showing error in Windows7. here is part of code where problem is occurring.

from pyvirtualdisplay import Display
display = Display(visible=1, size=(300, 400))
display.start() 

but when I run same command in Windows, I get this error

Traceback (most recent call last):
  File "C:\Python27\Scripts\pynt-script.py", line 9, in <module>
    load_entry_point('pynt==0.8.0', 'console_scripts', 'pynt')()
  File "C:\Python27\lib\site-packages\pynt\_pynt.py", line 295, in main
    build(sys.argv[1:])
  File "C:\Python27\lib\site-packages\pynt\_pynt.py", line 48, in build
    module = imp.load_source(path.splitext(path.basename(args.file))[0], args.fi
le)
  File "build.py", line 7, in <module>
    display = Display(visible=1, size=(300,400))
  File "C:\Python27\lib\site-packages\pyvirtualdisplay\display.py", line 33, in
__init__
    self._obj = self.display_class(
  File "C:\Python27\lib\site-packages\pyvirtualdisplay\display.py", line 50, in
display_class
    cls.check_installed()
  File "C:\Python27\lib\site-packages\pyvirtualdisplay\xvfb.py", line 34, in che
ck_installed
    ubuntu_package=PACKAGE).check_installed()
  File "C:\Python27\lib\site-packages\easyprocess\__init__.py", line 209, in che
ck_installed
    raise EasyProcessCheckInstalledError(self)
easyprocess.EasyProcessCheckInstalledError: cmd=['Xvfb', '-help']
OSError=[Error 2] The system cannot find the file specified
Program install error! 

I think my program is not able to find xvfb program/library ? I installed xvfbwrapper (https://github.com/cgoldberg/xvfbwrapper) but problem still remain same. again I think xvfbwrapper is different from xvfb?

Any alternative for Windows platform which can do headless testing (virtual framebuffer)

回答1:

You get an error because command Xvfb was not found. Xvfb is X virtual framebuffer which is not a part of Microsoft Windows 7.