python vbox_用于VirtualBox的Python API

博主在尝试使用Python库pyvb来创建VirtualBox的命令行界面,并通过远程连接控制VirtualBox。然而,在运行代码时遇到了AttributeError,提示'str' object has no attribute 'getUUID'。解决方案可能是检查使用的pyvb库是否为官方API,或者考虑使用VirtualBox的官方Python SDK,该SDK提供了示例和完整API文档。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我为virtualbox制作了命令行界面,以便可以从远程计算机控制virtualbox.现在我正在尝试使用python virtualbox api实现命令行界面.为此,我下载了pyvb软件包(python api文档显示了可用于在pyvb软件包下实现此功能的函数).但是当我给pyvb.vb.VB.startVM(VB类的实例,pyvb.vm.vbVM)

服务器端代码为

from pyvb.constants import *

from pyvb.vm import *

from pyvb.vb import *

import xpcom

import pyvb

import os

import socket

import threading

class ClientThread ( threading.Thread ):

# Override Thread's __init__ method to accept the parameters needed:

def __init__ ( self, channel, details ):

self.channel = channel

self.details = details

threading.Thread.__init__ ( self )

def run ( self ):

print 'Received connection:', self.details [ 0 ]

while 1:

s= self.channel.recv ( 1024 )

if(s!='end'):

if(s=='start'):

v=VB()

pyvb.vb.VB.startVM(v,pyvb.vm.vbVM)

else:

self.channel.close()

break

print 'Closed connection:', self.details [ 0 ]

server = socket.socket ( socket.AF_INET, socket.SOCK_STREAM )

server.bind ( ( '127.0.0.1', 2897 ) )

server.listen ( 5 )

while True:

channel, details = server.accept()

ClientThread ( channel, details ).start()

它显示一个错误

Exception in thread Thread-1:

Traceback (most recent call last):

File "/usr/lib/python2.5/threading.py", line 486, in __bootstrap_inner

self.run()

File "news.py", line 27, in run

pyvb.vb.VB.startVM(v,pyvb.vm.vbVM.getUUID(m))

File "/usr/lib/python2.5/site-packages/pyvb-0.0.2-py2.5.egg/pyvb/vb.py", line 65, in startVM

cmd='%s %s'%(VB_COMMAND_STARTVM, vm.getUUID())

AttributeError: 'str' object has no attribute 'getUUID'

解决方法:

您可能需要从Virtualbox检查官方的Python API. pyvb似乎是第三方编写的包装器.

virtualbox sdk包含Python示例和完整的API文档.

标签:api,virtualbox,python

来源: https://codeday.me/bug/20191210/2100346.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值