【发布时间】:2010-04-16 10:26:53
【问题描述】:
使用 python virtualbox API 代替 XPCOM 有什么好处?
【问题讨论】:
标签: python virtualbox xpcom
使用 python virtualbox API 代替 XPCOM 有什么好处?
【问题讨论】:
标签: python virtualbox xpcom
优点是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。
【讨论】:
来自VirtualBox python APIssun 的网站:
SOAP 允许通过 控制远程虚拟机 HTTP,而 XPCOM 则更多 高性能并暴露某些 SOAP 不具备的功能。
他们使用非常不同的技术 (SOAP 是程序性的,而 XPCOM 是 OOP),但由于它最终是 API 相同的功能 VirtualBox,我们保留在绑定中 原始语义,所以其他 连接建立,代码可以 写成这样的方式,人们 可能不在乎什么交流 具有 VirtualBox 实例的通道是 用过。
从那篇文章中,我无法看出“python virtualbox API”和“XPCOM”之间的区别。您能否提供您正在考虑的 API 的链接?
【讨论】: