VirtualBox Software Developer Kit (SDK)
Oracle provides this SDK to interface with VirtualBox. This branch contains only the Python bindings (vboxapi) extracted from Oracle’s SDK, packaged for installation via pip. For the full SDK exactly as Oracle ships it, see the main branch instead.
A new release is published here automatically whenever Oracle publishes a new VirtualBox SDK version; the package version always matches VirtualBox’s own version number (see pyproject.toml).
The code is available on Github and PyPI.
Installation
Since the package is listed on PyPI, you can install it with:
pip install vbox-sdk
Please note that this package conflicts with the vboxapi package.
If you need the bindings for a specific old VirtualBox version, pin that version, e.g. pip install vbox-sdk==7.0.14.
Usage
I won’t attempt to document the full API since I’m not the maintainer of the actual code. However, if, like me, all you’re trying to do is manage the VMs in VirtualBox, you’ll want to check out the vboxapi.VirtualBoxManager class in particular. From the SDK Reference manual, here’s an example of how to use the manager to perform some basic tasks:
from vboxapi import VirtualBoxManager mgr = VirtualBoxManager(None, None) vbox = mgr.vbox name = "Linux" mach = vbox.findMachine(name) session = mgr.getSessionObject(vbox) progress = mach.launchVMProcess(session, "gui", "") progress.waitForCompletion(-1) mgr.closeMachineSession(session)
License
Although I’ve listed this repository as being licensed under “The Unlicense”, I am not the originator of the code. The license information in SDKRef.pdf (in the docs folder) contains this explanation of the code’s license:
The sample code files shipped with the SDK are generally licensed liberally to make it easy for anyone to use this code for their own application code.
The Java files under bindings/webservice/java/jax-ws/ (library files for the object-oriented web service) are, by contrast, licensed under the GNU Lesser General Public License (LGPL) V2.1.
See sdk/bindings/webservice/java/jax-ws/src/COPYING.LIB for the full text of the LGPL 2.1.
When in doubt, please refer to the individual source code files shipped with this SDK.
My hope is that by storing the SDK here, it will be of use to those who want to install the library from pip as well as those working with Git repositories exclusively, but I cannot take responsibility for the code as provided by Oracle.
Release files for vbox-sdk 7.2.18
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| vbox_sdk-7.2.18.tar.gz | 80.4 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| vbox_sdk-7.2.18-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 160.7 kB
Release files / vbox_sdk-7.2.18.tar.gz
| Download URL | vbox_sdk-7.2.18.tar.gz |
|---|---|
| Size | 80.4 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
1a6f0bb2d77b4020373563ace4897ad45da576332cebf6705359a1d456879d40
|
|
BLAKE2b-256 checksum How to use checksums |
821fad4ae0a3a896c9422210e11aab28aa9535fd642918f80183de9b2c15fa1d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / vbox_sdk-7.2.18-py3-none-any.whl
| Download URL | vbox_sdk-7.2.18-py3-none-any.whl |
|---|---|
| Size | 80.2 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
5b200a884caa90ba695e5a2a5b2630ec3066040dd36add08cf3cffd72f3773a4
|
|
BLAKE2b-256 checksum How to use checksums |
16c92847e8529f525fe3ce1ed88365b1bda63dfe8755a584ec53bf43cbbf883d
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
uv/0.12.17 {"installer":{"name":"uv","version":"0.12.17","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|