使用Python启动VirtualBox虚拟机

使用Python启动VirtualBox虚拟机,python,virtualbox,Python,Virtualbox,如何使用pyvb模块从virtualbox无头启动虚拟机?通过使用来自virtualbox的脚本,您可以相对轻松地使用真正的python绑定(而不是调用子流程中的VBoxManager命令行的包装器,比如pyvb) 或者您可以将其用于python绑定的参考文档。没有关于python绑定的文档,老实说,它们并没有以良好的python方式实现。属性和方法不在\uuu dict\uuuu中,因此无法通过内省(或ipython中的自动完成)找到它们,也没有文档字符串。python绑定的另一个参考是项目的

如何使用
pyvb
模块从virtualbox无头启动虚拟机?

通过使用来自virtualbox的脚本,您可以相对轻松地使用真正的python绑定(而不是调用子流程中的VBoxManager命令行的包装器,比如pyvb)

或者您可以将其用于python绑定的参考文档。没有关于python绑定的文档,老实说,它们并没有以良好的python方式实现。属性和方法不在
\uuu dict\uuuu
中,因此无法通过内省(或ipython中的自动完成)找到它们,也没有文档字符串。python绑定的另一个参考是项目的源代码:


对于headless启动,需要将'headless'传递给vbox.openRemoteSession(session,uuid,type,“”)方法调用的第三个参数(type)。请查看vboxshell.py和VBoxWebSrv.py中的startVm()函数以供参考。

您可以使用
pyvbox
python模块使用Vbox接口启动和停止VirtualBox:

如果您使用该库,您想要完成的任务非常简单:

import virtualbox

vbox = virtualbox.VirtualBox()
machine = vbox.find_machine("you_virtual_machine_name")  ## for example: "ubuntu"
# If you want to run it normally:
proc = machine.launch_vm_process(session, "gui")
# If you want to run it in background:
# proc = machine.launch_vm_process(session, "headless")
proc.wait_for_completion(timeout=-1)