使用pyvbox模块创建vm

时间:2016-05-25 10:08:17

标签: python-2.7 virtualbox

我正在使用pyvbox,即virtualBox主API的完整实现。在我的用例中,我只想编写一个python代码来启动和停止VM。当我使用python GUI时,每件事都运行正常。但是当我尝试从CMD运行python代码时,我收到了这个错误:

echec de l'ouverture de session pour la machine 'test'

Microsoft Visual C++ Runtime Library
Runtime Error!
Program: C:\Program Files\Oracle\VirtualBox\VBoxSVC.exe

R6025
-pure virtual function call

PS:

  1. python版本2.7.11

  2. pyvbox 1.0.0

  3. OS windows 8

  4. startvm.py:

    import virtualbox
    vbox = virtualbox.VirtualBox()
    session = virtualbox.Session()
    vm = vbox.find_machine('test_vm')
    progress = vm.launch_vm_process(session, 'gui', '')
    

1 个答案:

答案 0 :(得分:0)

也许您不再需要任何帮助了:D,但无论如何我还是在这里写下来,也许对某人会有帮助。

使用python pyvbox库启动和停止VM非常简单:

import virtualbox

from vboxapi import VirtualBoxManager

vbox = virtualbox.VirtualBox()
session = virtualbox.Session()

# This part starts the machine:
# machine_name is a simple string containing the name of your VM. For example "ubuntu"
machine = vbox.find_machine(machine_name)  
proc = machine.launch_vm_process(session, "headless")
proc.wait_for_completion(timeout=-1)

# This part stops it:
process, unused_variable = session.machine.take_snapshot("snapshot_name", "snapshot_description", False)  
# False means "do not pause the machine while snapshotting"
process.wait_for_completion(timeout=-1)
session.unlock_machine()

我创建了一个简单的脚本来自动为虚拟机创建快照。

GitHub: https://github.com/Meru3m/virtualbox-snapshotter