Install & Compatibility
Where this runs
tested against v3.21 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.474s · 20.1MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 1.8s · import 0.420s · 20MB
18MB installed
● package 18MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
vhdx
✓ from dissect.hypervisor import vhdx
✗ from dissect_hypervisor import vhdx
The package name uses underscores, but imports use dot notation under dissect.hypervisor
esx
✓ from dissect.hypervisor import esx
qemu
✓ from dissect.hypervisor import qemu
vbox
✓ from dissect.hypervisor import vbox
Basic usage to open a VHDX file and list its streams.
from dissect.hypervisor import vhdx
# Open a VHDX file
with open('disk.vhdx', 'rb') as f:
vhdx_file = vhdx.VHDX(f)
print('VHDX version:', vhdx_file.header.signature)
for stream in vhdx_file.streams():
print('Stream:', stream.type)
dissect.hypervisor --version
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'dissect.hypervisor'
The package is not installed or the import path is wrong (e.g., using dissect_hypervisor).
fixInstall with `pip install dissect-hypervisor` and import using `from dissect.hypervisor import vhdx`
AttributeError: module 'dissect.hypervisor' has no attribute 'vhdx'
The import is incorrect; likely you imported the package but not the submodule.
fixUse `from dissect.hypervisor import vhdx`
dissect.hypervisor.vhdx.VHDX does not support differencing disks
The VHDX parser only handles fixed or dynamic disks, not differencing (parent-child) chains.
fixMerge the differencing disk into a parent first using external tools, or locate the parent VHDX and parse independently.
Upgrade
Version history
3.21latest on PyPI · released Feb 24, 2026
Audit
Dependencies
dissect.cstructrequiredCore dependency for structure parsing
dissect.volumerequiredUsed for disk volume handling
dissect.targetoptionalRequired for integration with Dissect target framework