python-msilib
Read and write Microsoft Installer files
What it is and what it does
python-msilib is a backport of Python's msilib module, which was removed from the standard library in Python 3.13. It allows developers to read, create, and manipulate Microsoft Installer (.msi) files programmatically. The package is specifically designed to support cx_Freeze's bdist_msi command, which generates Windows installers, ensuring that existing build workflows continue to work on Python 3.13 and later.
The library provides low-level access to the Windows Installer database format and APIs. It has no external runtime dependencies and is available as platform-specific wheels for Windows (32-bit, 64-bit, and ARM64 architectures) across Python 3.13, 3.14, and 3.15, including free-threading variants. Installation is straightforward on Windows; non-Windows systems cannot use this package.
Use it for:
- Maintain cx_Freeze bdist_msi builds on Python 3.13+ after msilib removal from stdlib.
- Programmatically generate or modify Windows .msi installer packages in build automation.
- Read and inspect existing .msi file structures and metadata for analysis or repackaging.
- Migrate legacy Python packaging workflows that relied on stdlib msilib to newer Python versions.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Reads and writes Microsoft Installer (.msi) files, providing access to the msilib module for Python 3.13 and later where it was removed from the standard library.
Yes, if you need to build or manipulate Windows .msi files on Python 3.13+. The package is actively maintained, has no external dependencies, and carries a permissive license. Install only on Windows; non-Windows systems have no use for it. Verify compatibility with your specific cx_Freeze version or msilib use case before relying on it in production.
Install
python-msilib on PyPI
pip
pip install python-msilibuv
uv add python-msilibpoetry
poetry add python-msilibInstalling python-msilib
Before you install
Medium friction due to platform-specific wheels (Windows only, multiple architectures). Active maintenance with recent release (9 days old). No runtime dependencies simplifies installation.
License in practice
Licensed under PSF-2.0 (permissive), allowing use in most projects without significant restrictions.
Quickstart
pip install python-msilib
import msilib
# Create or manipulate .msi files using msilib API
Windows-only package; requires Python 3.13 or later.
Verify before relying
- Whether this package is intended as a temporary compatibility shim or a long-term maintained alternative to the removed stdlib msilib.
- Performance or feature parity compared to the Python 3.12 stdlib version it was borrowed from.
- Compatibility with cx_Freeze's bdist_msi command beyond the stated intent.
Package facts
| License | PSF-2.0 (permissive) |
| Python support | supports the current Python release (>=3.13) |
| Install friction | medium — platform-specific wheel |
| Runtime dependencies | none |
| Maintenance | actively maintained — 9 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 122,419/month — #11,951 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: python_msilib-0.7.0-cp313-cp313-win32.whl; python_msilib-0.7.0-cp313-cp313-win_amd64.whl; python_msilib-0.7.0-cp313-cp313-win_arm64.whl; python_msilib-0.7.0-cp314-cp314t-win32.whl; python_msilib-0.7.0-cp314-cp314t-win_amd64.whl; python_msilib-0.7.0-cp314-cp314t-win_arm64.whl; python_msilib-0.7.0-cp314-cp314-win32.whl; python_msilib-0.7.0-cp314-cp314-win_amd64.whl; python_msilib-0.7.0-cp314-cp314-win_arm64.whl; python_msilib-0.7.0-cp315-cp315t-win32.whl; python_msilib-0.7.0-cp315-cp315t-win_amd64.whl; python_msilib-0.7.0-cp315-cp315t-win_arm64.whl; python_msilib-0.7.0-cp315-cp315-win32.whl; python_msilib-0.7.0-cp315-cp315-win_amd64.whl; python_msilib-0.7.0-cp315-cp315-win_arm64.whl
Keywords: msilib
Tags
More Python Modules packages
Converts domain names between Unicode and…
permissive · top 100 on PyPI
setuptoolsSetuptools is a Python build backend and…
permissive · top 100 on PyPI
PyYAMLPyYAML parses and emits YAML 1.1 data format,…
permissive · top 100 on PyPI
pydanticPydantic validates Python data structures…
permissive · top 100 on PyPI
annotated-typesProvides reusable metadata objects for use with…
permissive · top 100 on PyPI
typing-inspectionProvides runtime tools to inspect and…
permissive · top 100 on PyPI
cx-Freezecx_Freeze converts Python scripts into…
permissive · top 15,000 on PyPI
freeze-corefreeze-core provides core runtime support for…
permissive · top 15,000 on PyPI
azure-mgmt-msiManages Azure Managed Service Identities…
permissive · top 5,000 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
installerA low-level library for unpacking and…
permissive · top 1,000 on PyPI
pyobjc-framework-InstallerPluginsProvides Python bindings to macOS's…
permissive · top 15,000 on PyPI
pypiwin32Installs pywin32 as a dependency, providing…
unclear · top 5,000 on PyPI
uproot3Reads and writes ROOT files (the data format…
permissive · top 15,000 on PyPI
docxCreates, reads, and writes Microsoft Office…
unclear · top 15,000 on PyPI
azure-cli-coreProvides the core Python library and CLI…
permissive · top 5,000 on PyPI