virtualbox-python: UnicodeDecodeError using take_screen_shot_to_array()
This happens with both VirtualBox PUEL and VirtualBox OSE (setting sys.abiflags = '').
In [1]: import virtualbox
...: vbox = virtualbox.VirtualBox()
...: vm = vbox.find_machine(vbox.machines[0].name)
...: session = vm.create_session()
...: h, w, _, _, _, _ = session.console.display.get_screen_resolution(0)
...: png = session.console.display.take_screen_shot_to_array(0, h, w, virtualbox.library.BitmapFormat.png)
...:
---------------------------------------------------------------------------
UnicodeDecodeError Traceback (most recent call last)
~/development/virtualenvs/pyvbox/lib/python3.5/site-packages/virtualbox/library_base.py in _call_method(self, method, in_p)
194 try:
--> 195 ret = method(*in_params)
196 except Exception as exc:
/usr/lib/virtualbox/sdk/bindings/xpcom/python/xpcom/client/__init__.py in takeScreenShotToArray(self, Param1, Param2, Param3, Param4)
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
During handling of the above exception, another exception occurred:
AttributeError Traceback (most recent call last)
<ipython-input-1-a41323a6ea59> in <module>()
4 session = vm.create_session()
5 h, w, _, _, _, _ = session.console.display.get_screen_resolution(0)
----> 6 png = session.console.display.take_screen_shot_to_array(0, h, w, virtualbox.library.BitmapFormat.png)
~/development/virtualenvs/pyvbox/lib/python3.5/site-packages/virtualbox/library.py in take_screen_shot_to_array(self, screen_id, width, height, bitmap_format)
23680 raise TypeError("bitmap_format can only be an instance of type BitmapFormat")
23681 screen_data = self._call("takeScreenShotToArray",
> 23682 in_p=[screen_id, width, height, bitmap_format])
23683 return screen_data
23684
~/development/virtualenvs/pyvbox/lib/python3.5/site-packages/virtualbox/library_base.py in _call(self, name, in_p)
184 method = self._search_attr(name)
185 if inspect.isfunction(method) or inspect.ismethod(method):
--> 186 return self._call_method(method, in_p=in_p)
187 else:
188 return method
~/development/virtualenvs/pyvbox/lib/python3.5/site-packages/virtualbox/library_base.py in _call_method(self, method, in_p)
210
211 if errobj.msg is None:
--> 212 errobj.msg = getattr(exc, 'msg', getattr(exc, 'message'))
213 raise errobj
214 return ret
AttributeError: 'UnicodeDecodeError' object has no attribute 'message'
XPCOM client init file. xpcom_cli_init.txt
About this issue
- Original URL
- State: closed
- Created 6 years ago
- Reactions: 3
- Comments: 23 (9 by maintainers)
Just wanted to say that this bug is still present. If anyone needs screenshots, use VNC for now.