我在运行 Windows 10 的主机上本地安装了 VirtualBox。我可以通过 VirtualBox GUI 应用程序启动和运行 Ubuntu 虚拟机。
我需要能够使用 python 管理该虚拟机的状态。据我所知,我追求这一目标的唯一途径是:
virtualbox-python
Github 上的库(最后活跃时间为 2020 年,构建失败)vboxapi
PyPi 上的库(最后一次活跃于 2012 年,构建失败)virtual-machines-python-manage
,我没有尝试使用它,因为它需要 Azure 服务(最终需要付费订阅)使用 2017 年 6 月的这篇 非常相似的帖子,当时由 vboxapi
维护者/
virtualbox-python
存储库托管者回答,我猜测该过程应该是轻松导入
virtualbox
或
vboxapi
图书馆。但是,当我运行任一库的函数时,我收到错误
No module named 'vboxapi
'。要解决这个问题,我应该能够:
python vboxapisetup.py install
。
vboxapi
,但我收到以下错误:
C:\Users\PATH_HERE\VirtualBoxSDK-6.1.30-148432\sdk\installer>python vboxapisetup.py install
Cleaning COM cache at C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0\Lib\site-packages\win32com\gen_py and C:\Users\USER_HERE\AppData\Local\Temp\gen_py
running install
running build
running build_py
copying vboxapi\__init__.py -> build\lib\vboxapi
running install_lib
creating C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0\Lib\site-packages\vboxapi
error: could not create 'C:\Program Files\WindowsApps\PythonSoftwareFoundation.Python.3.9_3.9.2544.0_x64__qbz5n2kfra8p0\Lib\site-packages\vboxapi': Access is denied
这是路径错误吗?我是否忽略了环境变量中的一些简单内容?
这篇文章针对 ubuntu 主机上的相同问题建议运行以下命令:
export VBOX_INSTALL_PATH=$(which VirtualBox)
sudo -E python vboxapisetup.py install
我可以在这里尝试一个 Windows 等效方法吗?
相反,我最终所做的是执行调用 VBoxManage 的 bash shell 脚本以及所需的每个后续命令。然后我必须将结果(从 VBoxManage 输出到终端的文本)传输回 Python 并解析文本。
https://kodekloud.com/community/t/missing-dependency-python-core-win32api/215281/27
简而言之 - 从 Python 网站 (下载 Python | Python.org) 安装适用于 Windows 的 Python,然后运行以下命令之一:
pip install pywin32
py -m pip install pywin32
如何在 Windows 上的 Python 中设置和使用 vboxapi 与 VirtualBox
要使用 Python 与 VirtualBox 交互,您可以使用 vboxapi 模块,它是 VirtualBox SDK 的一部分。
1。安装 VirtualBox
首先,确保您的系统上安装了 VirtualBox。您可以从VirtualBox官网下载。
2。下载 VirtualBox SDK
从 VirtualBox SDK 部分下载 VirtualBox SDK。查找“软件开发工具包 (SDK)”部分并下载 适合您的 VirtualBox 安装的版本。
3.解压SDK
将下载的 SDK 存档解压到系统上的目录中。
4。设置Python环境
您需要设置 PYTHONPATH 以包含 vboxapi 模块所在的目录。该目录通常位于 SDK 的 bindings/xpcom/python 目录中。
在 Windows 上:
打开命令提示符:按 Win + R,输入 cmd,然后按 Enter。设置 PYTHONPATH:使用以下命令为当前会话设置 PYTHONPATH:
set PYTHONPATH=C:\path\to\sdk\bindings\xpcom\python;%PYTHONPATH%
确保将 C:\path o\sdk indings\xpcom\python 替换为您提取 VirtualBox SDK 的实际路径。要在系统属性中永久设置 PYTHONPATH:
5。验证 PYTHONPATH
要验证 PYTHONPATH 设置是否正确,可以 echo 环境变量:
echo %PYTHONPATH%
您应该看到您设置的路径,表明 PYTHONPATH 已正确配置。
6。在 Python 中使用 vboxapi
这是使用 vboxapi 截取屏幕截图的示例脚本:
import vboxapi
vbox_mgr = vboxapi.VirtualBoxManager(None, None)
vbox = vbox_mgr.vbox
session = vbox_mgr.mgr.getSessionObject(vbox)