使用 python virtualbox API 代替 XPCOM 有什么好处?
3 回答
优点是 pyvb 更容易使用。
相反,XPCOM 的 python API 的文档不存在,API 根本不是 pythonic。您无法通过自省来查找对象的方法/属性等。因此,您必须检查 C++ 源代码以了解其工作原理或已编写的一些 python 脚本(如vboxshell.py和VBoxWebSrv.py)。
另一方面,pyvb 实际上只是在命令行上调用 VirtuaBoxManager 的 python 包装器。不知道这算不算劣势?
我通常会建议反对任何一个。如果您需要以编程方式使用虚拟化,请查看 libvirt,它为您提供跨平台和跨管理程序支持;这使您可以稍后执行 kvm/xen/vz/vmware。
也就是说,SOAP api 使用了两个额外的抽象层(HTTP 事务的客户端和服务器端),这很明显只是调用 XPCOM 接口。
如果您只需要本地主机支持,请使用 XPCOM。libvirt/SOAP 的额外间接对您没有帮助。如果您需要跨多个客户端机器访问不同主机上的 virtualbox,请使用 SOAP 或 libvirt 如果您想要跨平台支持,或者在 Linux 上运行您的代码,请使用 libvirt。
来自 Sun 的VirtualBox python APIs网站:
SOAP 允许通过 HTTP控制远程虚拟机,而 XPCOM性能更高,并且公开了 SOAP 不具备的某些功能。
它们使用非常不同的技术(SOAP 是过程的,而 XPCOM 是 OOP),但由于它最终是与 VirtualBox 相同功能的 API,我们保持绑定原始语义,所以除了连接建立,代码可以写成这样人们可能不关心使用 VirtualBox 实例的通信渠道。
从那篇文章中,我无法看到“python virtualbox API”和“XPCOM”之间的区别。您能否提供您正在考虑的 API 的链接?