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, with a built-in login shortcut. This README focuses on end-user packaging usage.

Features

  • Compatible with standard PyInstaller arguments
  • Supports login mode (distromate login)
  • Runs distromate package after a successful PyInstaller build
  • Supports publish mode (distromate publish)
  • Works on Windows, macOS, and Linux
  • Depends on the distromate Python package instead of bundling its own CLI
  • Supports --appid for package / publish
  • Auto-creates distromate.yaml when missing and auto-syncs appid and package fields

Install

pip install pyinstaller-plus

distromate will be installed automatically as a dependency.

Quick Start

  1. Log in to DistroMate:
pyinstaller-plus 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 package -v 1.2.3 --appid com.example.app your.spec
  1. Build and publish:
pyinstaller-plus publish -v 1.2.3 --appid com.example.app your.spec

CLI Behavior

pyinstaller-plus executes one of these flows:

  • login: resolve DistroMate CLI from the Python dependency or PATH, then run distromate login

  • package / publish:

    1. Run python -m PyInstaller ...
    2. Resolve DistroMate CLI from:
      • installed distromate Python package
      • PATH
    3. Resolve release version from:
      • package -v / package --version
      • publish -v / publish --version
      • pyproject.toml -> project.version
    4. Resolve app id from:
      • package --appid
      • publish --appid
    5. Ensure and auto-update distromate.yaml/distromate.yml from CLI args and PyInstaller args/spec:
      • top-level appid (when --appid is provided)
      • 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)
    6. Run one of:
      • distromate package -v <version>
      • distromate publish -v <version>

Commands

  • login: run distromate login
  • package -v <version> [--appid <appid>]: build with PyInstaller, then run distromate package
  • publish -v <version> [--appid <appid>]: build with PyInstaller, then run distromate publish

Use -- when you need to pass PyInstaller's own --version through the wrapper.

Example distromate.yml

appid: your_appid
name: MyApp

package:
  name: myapp
  description: My desktop app
  executable: dist/myapp.exe
  target: dist
  publisher: MyApp Publisher
  language: english
  files:
    - "**/*"
    - "!**/.git/**"
    - "!**/*.log"
    - "!temp/**"
    - "!**/__pycache__/**"
    - "!**/*.pyc"
  preservePaths:
    - config
    - data

package.files uses electron-builder-compatible glob patterns. package.ignores is no longer kept in generated config.

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.24.tar.gz (13.0 kB view details)

Uploaded Source

Built Distribution

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

pyinstaller_plus-0.1.24-py3-none-any.whl (10.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: pyinstaller_plus-0.1.24.tar.gz
  • Upload date:
  • Size: 13.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.12.10

File hashes

Hashes for pyinstaller_plus-0.1.24.tar.gz
Algorithm Hash digest
SHA256 b5ccab36f73e656e6521f057494ef5bc1c05dc9da39d18603ca911faaea79da1
MD5 7a25087b0335182b0ae2f05b6d52251d
BLAKE2b-256 1408bbf742c81e5fb61656ac71f681d1fb8d908bd8e14bfb5857a59fb112c333

See more details on using hashes here.

File details

Details for the file pyinstaller_plus-0.1.24-py3-none-any.whl.

File metadata

File hashes

Hashes for pyinstaller_plus-0.1.24-py3-none-any.whl
Algorithm Hash digest
SHA256 514e405d392f8ec114079f60e61bde4bfea23fde8b9173f0b5eaa49ff970cc5e
MD5 a9e99f329b9f8f3b0b1b5d89e91ed69d
BLAKE2b-256 9ed5f647ea660ed37c242a2a1a53a246bdcf578298bb7c823210915b1767c253

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