PyInstaller wrapper that runs DistroMate packaging/publish after build
Project description
pyinstaller-plus
pyinstaller-plus is a PyInstaller-compatible wrapper that keeps your existing
PyInstaller workflow and then runs DistroMate packaging or publishing.
Features
- Compatible with standard PyInstaller arguments
- Runs
distromate packageafter a successful PyInstaller build - Supports publish mode (
distromate publish) - Works on Windows, macOS, and Linux
- Auto-detects DistroMate CLI and falls back to installer scripts when needed
Install
pip install pyinstaller-plus
Quick Start
- Log in to DistroMate:
distromate login
-
Create a
distromate.ymlin your project root. -
Build and package:
pyinstaller-plus --dm-version 1.2.3 your.spec
- Build and publish:
pyinstaller-plus --publish --dm-version 1.2.3 your.spec
CLI Behavior
pyinstaller-plus executes this flow:
- Run
python -m PyInstaller ... - Resolve DistroMate CLI from:
PATH- bundled binary in this package
- OS-specific installer fallback
- Resolve release version from:
--dm-versionpyproject.toml->project.version
- Run one of:
distromate package -v <version>distromate publish -v <version>
Extra Arguments
--publish/--dm-publish: publish mode-p: publish shorthand when used as a standalone flag--dm-version <version>: release version passed to DistroMate
Note: -p <path> is still treated as the original PyInstaller -p option.
Use --publish if you want unambiguous publish mode.
Example distromate.yml
appid: your_appid
name: MyApp
description: My desktop app
package:
name: myapp
executable: dist/myapp.exe
target: dist
publisher: MyApp Publisher
language: english
preservePaths:
- config
- data
ignores:
- "*.log"
- temp/
- "__pycache__/"
- "*.pyc"
Multi-Platform Distribution (Maintainers)
This repository builds platform-specific wheels via GitHub Actions:
- Workflow:
.github/workflows/build-distributions.yml - Tool:
cibuildwheel - Outputs:
py3-none-win_amd64.whlpy3-none-macosx_*.whlpy3-none-linux_*.whl- source distribution (
sdist)
Before wheel build, CI runs scripts/prepare_distromate_binary.py.
Optional environment variables:
DISTROMATE_CLI_PATH: local distromate executable pathDISTROMATE_CLI_URL: shared download URL for all platformsDISTROMATE_CLI_VERSION: auto-generate platform download URL in CIDISTROMATE_CLI_BASE_URL: base URL for versioned downloads (default:https://static.distromate.net/distromate-cli)DISTROMATE_CLI_OS: optional OS override for versioned download URLDISTROMATE_CLI_ARCH: optional arch override (x64/arm64)DISTROMATE_WINDOWS_URL: Windows-specific download URLDISTROMATE_MACOS_URL: macOS-specific download URLDISTROMATE_LINUX_URL: Linux-specific download URLDISTROMATE_SKIP_AUTO_INSTALL=1: disable installer fallbackDISTROMATE_STRICT_BUNDLE=1: fail build when bundling is unavailable
If DISTROMATE_CLI_VERSION is set (and no explicit URL env is provided), the CI helper tries versioned paths like:
<base>/<version>/<os>/<arch-dir>/distromate-<os-or-darwin>-<arch>[.exe]
arch-dirdefaults tox64/arm64- for x64, filename arch fallback is
amd64thenx64 - on macOS, filename prefix fallback is
darwinthenmacos
Example (version=ci-20260226-44d0c86, os=windows, arch-dir=x64):
https://static.distromate.net/distromate-cli/ci-20260226-44d0c86/windows/x64/distromate-windows-amd64.exe
Automatic PyPI Publish
The same workflow can publish to PyPI automatically.
Trigger rules:
- Push a tag that matches
v*(recommended for releases) - Or run
build-distributionsmanually withpublish=true
Authentication options:
PYPI_API_TOKENrepository secret (token upload)- Trusted Publishing (OIDC) if no token is provided
Published files include all wheel artifacts and the sdist.
Local Build for This Package
Use the helper script:
./build.ps1
It can clean, build, run twine check, and upload.
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 Distributions
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 pyinstaller_plus-0.1.8.tar.gz.
File metadata
- Download URL: pyinstaller_plus-0.1.8.tar.gz
- Upload date:
- Size: 6.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b4147948ba47b85244ed9cfba0e1a7d43cf8d792bede2313eb0af9f5cc7879b8
|
|
| MD5 |
a82e3b021c9be9d32be9df34bfc55d24
|
|
| BLAKE2b-256 |
e44054c565b99715dab9f29de16b166598a558622e5fba0cf790b3f1f1f6f448
|
File details
Details for the file pyinstaller_plus-0.1.8-py3-none-win_amd64.whl.
File metadata
- Download URL: pyinstaller_plus-0.1.8-py3-none-win_amd64.whl
- Upload date:
- Size: 7.4 kB
- Tags: Python 3, Windows x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
824792cf9337a418a875369f5140c52854ad3e761bf3a0d40be6b33acfeec261
|
|
| MD5 |
647c754fbb4696631245d53a33a87787
|
|
| BLAKE2b-256 |
71ec85dbe9f7d539e18ca9d2c76458680d775d77fced2e3f5e9534bd22678ecd
|
File details
Details for the file pyinstaller_plus-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.
File metadata
- Download URL: pyinstaller_plus-0.1.8-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3, manylinux: glibc 2.17+ x86-64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a6b96730ed4d87175269a0056ee2b73d0a47e27829a3b617eec21418a2413bb4
|
|
| MD5 |
a524dc864412f3bd1c123fcf043db57a
|
|
| BLAKE2b-256 |
b66fafef9f6d901b838acd5ababfbbbb110b922b1291f2fabdb1fc4a5a4d97ee
|
File details
Details for the file pyinstaller_plus-0.1.8-py3-none-macosx_11_0_arm64.whl.
File metadata
- Download URL: pyinstaller_plus-0.1.8-py3-none-macosx_11_0_arm64.whl
- Upload date:
- Size: 7.3 kB
- Tags: Python 3, macOS 11.0+ ARM64
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
a3df3410b6fc5f826e6f0d4dc0aeca142b1c91bbe4af2d86e2100c899b4abb54
|
|
| MD5 |
e939e2cb6c62a77c181111d8d3cccdc7
|
|
| BLAKE2b-256 |
7f4dea7b6ed4ec1c600d2f5b34c0e9926605c8651c758653e5c536f1f4d7c292
|