[vbox-dev] Using python API bindings on Windows

Klaus Espenlaub klaus.espenlaub at oracle.com
Wed Jul 30 17:31:36 GMT 2014


On 30.07.2014 19:13, Alexey Eromenko wrote:
> python 64 for windows 64.
> This is because VirtualBox uses MS COM, which cannot work in 32-bit
> mode on Windows 64-bit.

That's not true. We made huge progress in this area with VirtualBox 4.3. 
The entire VirtualBox API can now be accessed from a 32 bit COM client 
even if Windows (and VirtualBox) is 64 bit, with the limitation that 
there is no console object. To be very precise, this only applies if the 
VM isn't running: otherwise the remote console object can be called from 
a 32 bit client because the console object then lives in a 64 bit 
process, the VM process, and COM can handle this).


> On Wed, Jul 30, 2014 at 6:49 PM, Mikhail Kovalev
> <mikhail.kovalev at gmail.com> wrote:
>> Ok, I've just noticed that there was already a thread on this topic earlier
>> this month (I joined the dev list later, so I did not see this mail). The
>> problem is that I am using 32 bit python on 64bit Win7. With 64bit Python
>> the problem disappears. So currently there is no way to connect to 64 bit
>> VBox from a 32 bit app (to get the console)? and what if I connect to a 32
>> bit VBox (on 32bit Win) from a 32 bit app, is this supposed to work?
>> Thanks,
>> Mikhail.
>> 2014-07-30 17:23 GMT+02:00 Mikhail Kovalev <mikhail.kovalev at gmail.com>:
>>> Hi,
>>> I am trying to use Python API bindings on Windows to control virtualbox. I
>>> have the following problem: when I create a session and lock a non-running
>>> VM with this session, I do not get a reference to the console object. As a
>>> result, I cannot control the non-running VM (e.g., I cannot restore a
>>> snapshot). I've tried to use the following code:
>>> from vboxapi import VirtualBoxManager
>>> vbox_mgr = VirtualBoxManager(None, None)
>>> vm = machByName(vbox_mgr, "win64")
>>> snap = vm.findSnapshot("1")
>>> session = vbox_mgr.mgr.getSessionObject(vbox_mgr.vbox)
>>> vm.lockMachine(session, 2);
>>> # session.console == None here
>>> I've also tried to restore a snapshot using vboxshell frontend, and I get
>>> the same result:
>>> 'NoneType' object has no attribute 'restoreSnapshot'
>>> I've tried it on 4.3.12 and on 4.3.14 - same result.
>>> For a running VM the console object is there and everything works fine. I
>>> can also start VMs using "lauchVMProcess".
>>> Is it a bug or is it a problem of my installation?
>>> Thanks in advance,
>>> Mikhail

More information about the vbox-dev mailing list