Python package for compiling projects with Nuitka and creating Windows installers with Wix Toolset
Project description
Installer Creator
Python package for compiling projects with Nuitka and creating Windows installers with Wix Toolset.
Features
- One-click builds - Compile Python to EXE and create installers with a single command
- Graphical Config Editor - Intuitive UI for managing build configurations
- Python Path Selection - Manually specify Python executable or auto-detect virtual environments
- File Browser Integration - Easily add files and resources with a file dialog
- Real-time Progress - View build output and cancel long-running operations
- Upgrade Code Management - Generate consistent UUIDs for product upgrades
- Flexible Configuration - Support for complex build scenarios and dependencies
Installation
pip install installer-creator
Prerequisites
-
Wix Toolset (required for installer creation):
dotnet tool install --global wix
The package will automatically install the Wix UI extension if missing
-
Nuitka (will be installed automatically)
Quick Start
- Create a basic configuration:
installer-creator config-editor - Build your application:
installer-creator build-exe - Create an installer:
installer-creator build-installer
Configuration Editor GUI
The graphical interface provides:
- Visual Editing of all configuration options
- Live Preview of installer appearance
- One-click Builds directly from the interface
- Validation of configuration values
- Progress Monitoring with cancel option
Launch the GUI with:
installer-creator config-editor
Command Line Usage
# Generate deterministic UUID for upgrade codes
installer-creator generate-uuid -s "MyAppName"
# Build executable with custom config
installer-creator build-exe -c custom_config.yaml --verbose
# Build with specific Python executable
installer-creator build-exe --python-path "C:\\path\\to\\python.exe"
# Create installer with debug output
installer-creator build-installer -c custom_config.yaml --debug
Troubleshooting
Common Issues:
- Missing Wix Toolset: Ensure
wixis installed globally - Permission Errors: Run commands as administrator when needed
- Build Failures: Check paths and file permissions in configuration
For detailed debugging:
installer-creator build-exe --debug
Testing
The project includes comprehensive tests covering:
- Build process validation
- Installer creation
- Configuration handling
- Edge case scenarios
Run tests with:
pytest tests/
Configuration
Create a build_config.yaml file:
# Nuitka build configuration
project:
name: "MyApp" # Application name
version: "1.0.0"
description: "My Application Description"
company: ""
icon: "app_icon.ico" # Optional icon file
main_file: "main.py" # Entry point file
python_path: "" # Optional path to Python executable (auto-detected if empty)
build:
output:
directory: "dist"
filename: "my_app.exe" # Output executable name
options:
standalone: true
onefile: true
splash_screen: ""
remove_output: true
include:
packages:
- ""
plugins:
- ""
data_dirs:
- source: "resources"
target: "resources"
external_data:
- "*.dll"
files:
- "requirements.txt"
- "readme.md"
- "*.json" # Example wildcard pattern
copy_beside:
- "resources"
installer:
enabled: true
output:
directory: "dist"
filename: "my_app_installer.msi"
metadata:
manufacturer: "Your Company"
product_name: "My Application"
upgrade_code: "" # Generate with installer-creator generate-uuid
ui:
banner_image: "banner.bmp"
dialog_image: "dialog.bmp"
license_file: "license.rtf"
shortcuts:
desktop: true
start_menu: true
debug:
enabled: false
console:
mode: "disabled"
stdout: null
stderr: null
exclude:
- "__pycache__"
- "*.pyc"
- "*.pyo"
- "*.pyd"
- "build"
- "dist"
Resource Paths
The installer supports flexible resource locations:
- UI images (banner/dialog) can be anywhere
- License file can be anywhere
- Paths can be absolute or relative to config file
GUI Features
The configuration editor provides a graphical interface for:
- Editing all aspects of the build configuration
- Managing project details, build settings, and installer options
- Previewing configuration changes
- Building executables and installers directly from the GUI
- Viewing real-time build output
- Canceling builds in progress
- Specifying a custom Python executable path
- Browsing and selecting files with a native file dialog
To launch the GUI, simply run:
installer-creator config-editor
The GUI will automatically create a default configuration file if none exists.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file installer_creator-0.2.3.tar.gz.
File metadata
- Download URL: installer_creator-0.2.3.tar.gz
- Upload date:
- Size: 119.4 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2e2fce19f3f671855707dd869f30f9b9b2f0a1218149b7217b0b373548053ad6
|
|
| MD5 |
18cb7906292c93fc307b347bc915c455
|
|
| BLAKE2b-256 |
f35680611036894b9e3ed7e881a4e736559a7f8a0ff5e5064c2a8e51881918f7
|
File details
Details for the file installer_creator-0.2.3-py3-none-any.whl.
File metadata
- Download URL: installer_creator-0.2.3-py3-none-any.whl
- Upload date:
- Size: 115.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.9
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cbd663304856219f081e01a6b1948aac2b073203f6a7b9935824b69595514493
|
|
| MD5 |
150ef0e3434bc8ad230ce02a691f3bb6
|
|
| BLAKE2b-256 |
b298046200a8cd52e52257704cc46ff268db80424227e117f7d8755a3132d86e
|