Skip to main content

bundleup

Bundle up your Python app with everything it needs. One command turns a locked project into a single .pyz that runs on plain Python: no install step, no network, native extensions included. And it tells you before you ship what won't survive the trip.

Dead simple to use, but also powerful and fast: esbuild's experience, for Python.

Status: pre-alpha. Research, positioning and the test suite are done; the bundler itself isn't written yet. Nothing is published on PyPI.

Why

Python has three ways to hand a program to someone else, and the middle one is missing:

Ship as The other machine needs Problem
Standalone executable Nothing Per-OS builds, code signing, antivirus
Source + pip install / uv sync Python, an installer, network The install step is where things break
One file that runs on the user's Python Python No easy, reliable tool. That's bundleup

pex, shiv and zipapps can do parts of this. bundleup's bet is a much better experience on top of the same correct approach: no flags to get it fast, plain-language errors, and a pre-ship check. See docs/vision.md.

Where to start reading

Gauntlet

uv run gauntlet/check_native.py                         # control group: projects run normally
uv run gauntlet/run_bundlers.py --conditions --out run  # existing bundlers, incl. hostile conditions
uv run gauntlet/report.py gauntlet/results/run.json > gauntlet/results/run.md

License

MIT

Metadata

Release files for bundleup 0.0.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for bundleup 0.0.1
File Size Uploaded
bundleup-0.0.1.tar.gz 3.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for bundleup 0.0.1
File Interpreter ABI Platform
bundleup-0.0.1-py3-none-any.whl Python 3 none any Details

Total release size: 7.5 kB

Release files / bundleup-0.0.1.tar.gz

Download URL bundleup-0.0.1.tar.gz
Size 3.1 kB
Tags Source
SHA-256 checksum
How to use checksums
fc78af9e702b73c8d0e0a25e452fe3d58e38b4e1f121178309e04cd6b1b2945f
BLAKE2b-256 checksum
How to use checksums
cd0333a5a5fecc3aebe154c08de21b6f3515e05b020ff22e13fb10cf8687d5ad
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / bundleup-0.0.1-py3-none-any.whl

Download URL bundleup-0.0.1-py3-none-any.whl
Size 4.4 kB
Tags Python 3
SHA-256 checksum
How to use checksums
5e97e4a024174cdf3e503b45cd5f847f280b03eac8b67234605077b4acc0804e
BLAKE2b-256 checksum
How to use checksums
8a713865314c826d79b84c29ca9bc982ce35ce6c5d4a03d3d50d6136597aae5b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.12.7 {"installer":{"name":"uv","version":"0.12.7","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

0.1.0

2 release files

This release

0.0.1 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page