使用Python Virtualbox API有什么优势?

11 投票
3 回答
16226 浏览
提问于 2025-04-15 21:40

使用Python的VirtualBox API有什么好处,而不是使用XPCOM?

3 个回答

1

来自太阳公司的关于 VirtualBox Python API 的内容:

SOAP 允许通过HTTP 来控制远程虚拟机,而 XPCOM 则性能更高,并且提供了一些 SOAP 无法实现的功能。

这两者使用的技术非常不同(SOAP 是过程式的,而 XPCOM 是面向对象的),但因为它们最终都是用来实现 VirtualBox 的相同功能,所以我们在绑定时保留了原有的语义。这样一来,除了建立连接的部分,代码可以写得让人们不必关心与 VirtualBox 实例之间使用了什么样的通信方式。

从这篇文章中,我很难看出“python virtualbox API”和“XPCOM”之间的区别。你能提供一个你所想的 API 的链接吗?

5

我一般不推荐使用这两种方法。如果你需要通过程序来使用虚拟化,可以看看libvirt,它支持多种平台和虚拟机管理程序,这样你就可以在后面使用kvm、xen、vz或vmware了。

不过,SOAP接口使用了两个额外的抽象层(HTTP事务的客户端和服务器端),这其实就是在调用XPCOM接口。

如果你只需要本地支持,建议使用XPCOM。libvirt和SOAP的额外间接调用对你没有帮助。如果你需要在多个客户端机器上访问virtualbox,可以使用SOAP或libvirt。如果你想要跨平台支持,或者想在Linux上运行你的代码,就用libvirt。

9

优点是,pyvb使用起来简单多了。

相反,XPCOM的Python API没有文档,而且这个API一点也不符合Python的风格。你不能通过反射来查找对象的方法或属性等等。所以你得去查看C++的源代码,才能搞清楚它是怎么工作的,或者找一些已经写好的Python脚本(比如vboxshell.pyVBoxWebSrv.py)。

另一方面,pyvb其实就是一个Python的包装器,它在命令行上调用VirtualBoxManager。我不知道这算不算真正的缺点?

撰写回答