3

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

4

3 回答 3

11

通过使用虚拟盒中的vboxshell.py脚本,您可以相对容易地使用真正的 python 绑定(而不是在子进程中调用 VBoxManager 命令行的包装器,比如 pyvb) 。

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

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

于 2010-03-06T14:03:56.157 回答
0

你可以使用pyvboxpython 模块通过 Vbox 接口来启动和停止 virtualbox:

https://pypi.python.org/pypi/pyvbox

于 2018-02-26T04:36:58.587 回答
0

如果您使用库pyvbox,您想要实现的任务非常简单:

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)
于 2020-02-17T14:11:00.890 回答