Следующий код прекрасно работает в python2.7, но с python3.6,
import virtualbox
vbox = virtualbox.VirtualBox()
vm = vbox.find_machine("my_vbox_machine_name")
session = vm.create_session()
display = session.console.display
png = display.take_screen_shot_to_array(0,10,10,virtualbox.library.BitmapFormat.png)
конец этой ошибки:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/home/username/.local/lib/python3.6/site-packages/virtualbox/library.py", line 23684, in take_screen_shot_to_array
in_p=[screen_id, width, height, bitmap_format])
File "/home/username/.local/lib/python3.6/site-packages/virtualbox/library_base.py", line 190, in _call
return self._call_method(method, in_p=in_p)
File "/home/username/.local/lib/python3.6/site-packages/virtualbox/library_base.py", line 231, in _call_method
ret = method(*in_params)
File "<XPCOMObject method 'takeScreenShotToArray'>", line 3, in takeScreenShotToArray
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x89 in position 0: invalid start byte
Я полагаю, это связано с различием строкового объекта между python2 и python3.
Я использую, чтобы увидеть реальный путь к файлу в поле "File" трекбэка python, но на этот раз это не так, поэтому я немного разочарован ...
Я бы исправил это, но я не знаю, как получить доступ к файлу: <XPCOMObject method 'takeScreenShotToArray'>
?