Skip to main content

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. This README focuses on end-user packaging usage.

Features

  • Compatible with standard PyInstaller arguments
  • Runs distromate package after 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
  • Auto-creates distromate.yaml when missing and auto-syncs package fields

Install

pip install pyinstaller-plus

Quick Start

  1. Log in to DistroMate:
distromate login
  1. Optional: create a distromate.yaml (or distromate.yml) in your project root. If missing, pyinstaller-plus will create one with defaults.

  2. Build and package:

pyinstaller-plus --dm-version 1.2.3 your.spec
  1. Build and publish:
pyinstaller-plus --publish --dm-version 1.2.3 your.spec

CLI Behavior

pyinstaller-plus executes this flow:

  1. Run python -m PyInstaller ...
  2. Resolve DistroMate CLI from:
    • PATH
    • bundled binary in this package
    • OS-specific installer fallback
  3. Resolve release version from:
    • --dm-version
    • pyproject.toml -> project.version
  4. Ensure and auto-update distromate.yaml/distromate.yml from PyInstaller args/spec:
    • top-level name (only auto-fill when missing)
    • package.name
    • package.executable
    • package.target
    • package.icon (from --icon or EXE(icon=...))
    • package.description (from --version-file or EXE(version=...) -> FileDescription)
    • package.publisher (from --version-file or EXE(version=...) -> CompanyName)
  5. 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"

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

pyinstaller_plus-0.1.12.tar.gz (11.1 kB view details)

Uploaded Source

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

pyinstaller_plus-0.1.12-py3-none-win_amd64.whl (15.3 MB view details)

Uploaded Python 3Windows x86-64

pyinstaller_plus-0.1.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl (4.2 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

pyinstaller_plus-0.1.12-py3-none-macosx_11_0_arm64.whl (4.0 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

File details

Details for the file pyinstaller_plus-0.1.12.tar.gz.

File metadata

  • Download URL: pyinstaller_plus-0.1.12.tar.gz
  • Upload date:
  • Size: 11.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for pyinstaller_plus-0.1.12.tar.gz
Algorithm Hash digest
SHA256 28e9ae50ee430af28ece5256f1a321fbf4d2283acbe27404df600f6206988007
MD5 6ca3aad0121326220f1833a36497915f
BLAKE2b-256 fa79107db32d68372d4b10ee84c7a2e065d1916badd654202cbc0b5790255df5

See more details on using hashes here.

File details

Details for the file pyinstaller_plus-0.1.12-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for pyinstaller_plus-0.1.12-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 42769dd011082fc30fc5f8d8d355b68e4c1eb350dbc23a044fef83fbc848de74
MD5 6b1d1b69e0602c8578c14d534492f85a
BLAKE2b-256 d761294712864a622a3d4d6be47358799668ce5bb7c027c576e92b92cba7f822

See more details on using hashes here.

File details

Details for the file pyinstaller_plus-0.1.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl.

File metadata

File hashes

Hashes for pyinstaller_plus-0.1.12-py3-none-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
Algorithm Hash digest
SHA256 2ba247cf04e9b5db6278144fc29034a501a7c7b8fff1fa6d9751f5b5f8125892
MD5 0a61e3ecdf1f83f8a1291b2dec4d6072
BLAKE2b-256 170721b9ad740383c83dfca4e15e30b02cd907faf5afda3ea0b3e659db620129

See more details on using hashes here.

File details

Details for the file pyinstaller_plus-0.1.12-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for pyinstaller_plus-0.1.12-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 93752d1f0da1bf2c23be97e7fcae420b40319c0019db68fa61cf90b3814dd1a2
MD5 1eefd10422ef8e5597b9f4f9dd31d4a3
BLAKE2b-256 9c543e203e4eb8cebad5e09c60d0e08b36a8a12190c07c4f04e009cf0cc6b136

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page