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-*.pyfiles and a working.specfile. - One-command CLI:
pybundle(entrypoint:pyi_autobundle.cli:main). - Centralized configuration via
pyproject.tomlunder[tool.pyi-autobundle]. .buildignoresupport to exclude files, directories, or patterns from inclusion.- Built-in hidden-imports database for common problematic packages (numpy, pandas, torch, PIL).
--dry-runmode 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.buildignorefile 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
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 pyi_autobundle-0.1.851.tar.gz.
File metadata
- Download URL: pyi_autobundle-0.1.851.tar.gz
- Upload date:
- Size: 16.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
1f79980f0468402ed8fa80f0d898d8e43fdc59649fdae783dc5076a47aa0ea8c
|
|
| MD5 |
32413d11264878bffae9fdef23ad561d
|
|
| BLAKE2b-256 |
f77c74b3777c9a7717f0e76eb881f593f57b3e470a14d15a595b60ae6242b846
|
File details
Details for the file pyi_autobundle-0.1.851-py3-none-any.whl.
File metadata
- Download URL: pyi_autobundle-0.1.851-py3-none-any.whl
- Upload date:
- Size: 19.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
0d76fef2d5a1ae5e515dc352ec9edc826f38adfad04968ebb112db12e9f9de0f
|
|
| MD5 |
d822061bba16291021b5bef7767a846a
|
|
| BLAKE2b-256 |
511fcbe4e1ba022f61aa66a8211631e5b1243a26e7162de667e6025dc26b9294
|