Skip to main content

Automatic hook and data file bundler for PyInstaller.

Project description

pyi-autobundle

Automatic hook and data file bundler for PyInstaller — a tool to help generate hooks, collect package assets, and produce PyInstaller spec files automatically so you can build portable binaries with a single command.

Key Features

  • Static AST import scanning and basic dynamic import detection.
  • Optional runtime import tracing to capture imports that only appear at runtime.
  • Package inspection to collect datas (images, JSON, templates, ML models) and native binaries.
  • Automatic generation of PyInstaller hook-*.py files and a working .spec file.
  • One-command CLI: pybundle (entrypoint: pyi_autobundle.cli:main).
  • Centralized configuration via pyproject.toml under [tool.pyi-autobundle].
  • .buildignore support to exclude files, directories, or patterns from inclusion.
  • Built-in hidden-imports database for common problematic packages (numpy, pandas, torch, PIL).
  • --dry-run mode to audit what would be included without building.

Installation

Install in editable/development mode or as a package in your Python environment:

python -m pip install -e .
python -m pip install pyinstaller

CLI Usage

Basic one-command build:

pybundle path\to\main.py --trace

Common flags:

  • --trace : run the runtime import tracer in addition to static scanning
  • --onefile : build a single-file executable (PyInstaller --onefile)
  • --windowed : create a windowed app (no console)
  • --hooks-dir : directory to write generated hooks (default: .pyi-hooks)
  • --buildignore : path to a .buildignore file to exclude assets
  • --dry-run : list files/modules that would be included and exit

Configuration (pyproject.toml)

You can set default build options in pyproject.toml under the tool.pyi-autobundle table. Example:

[tool.pyi-autobundle]
onefile = true
windowed = false
name = "myapp"
icon = "assets/app.ico"

The CLI will merge values from this config with any flags you pass on the command line.

.buildignore

Place a .buildignore file in your project root to exclude files or patterns from being collected. Lines starting with # are treated as comments. Example:

# exclude tests and dataset
tests/
data/raw/
*.log

Resource discovery

If your code uses a helper like get_resource_path("assets/icon.png"), the static scanner attempts to detect literal calls and automatically include referenced files in the build.

Dry-run audit

Use --dry-run to print a report of datas, binaries, and hiddenimports that would be included by the build process without invoking PyInstaller.

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

pyi_autobundle-0.1.0.tar.gz (11.5 kB view details)

Uploaded Source

Built Distribution

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

pyi_autobundle-0.1.0-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file pyi_autobundle-0.1.0.tar.gz.

File metadata

  • Download URL: pyi_autobundle-0.1.0.tar.gz
  • Upload date:
  • Size: 11.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for pyi_autobundle-0.1.0.tar.gz
Algorithm Hash digest
SHA256 bf163d67b51a3fdf8d6bad7ff7ce279f0f1faddf1f8f4c68e38322f712369c59
MD5 be5cb8059fd1e21a6241ddf988a041d9
BLAKE2b-256 dcdac24854e560fd6dce40034b1f649af74ce6bfd9927ba2de79463b257f04d5

See more details on using hashes here.

File details

Details for the file pyi_autobundle-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: pyi_autobundle-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 14.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.11

File hashes

Hashes for pyi_autobundle-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 699b667f1a91602b7a99af1c29fd3a0cdd1b71357d75df3e5d6c0b25fee38d7a
MD5 f14c42677b9a9e0d6ec2a7180dde3883
BLAKE2b-256 df8318d2079b13828341a1c034204a1ede64a8aca3ec65956b0c1a2bdfb81489

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