Skip to main content

appimage

Zero-setup, reproducible builds.

Read the Docs

PyPI Python versions License Documentation Status


appimage bundles a complete Python distribution together with your application and all its dependencies into a single executable file.

  • Same Python as uv: the bundled interpreter comes from python-build-standalone, the same builds uv python install uses - what you develop and test with locally is what ships in the AppImage
  • Reproducible builds: two independent builds of the same project produce a byte-for-byte identical .AppImage, no configuration needed (details below)

Quick Start

pip install appimage

A pyproject.toml is all that's needed to build. If your project already has one, app, entry_point, and python version are read from [project] automatically.

# Check what will be detected before building
python -m appimage.ctl check

# Writes the AppImage to dist/myapp-x86_64.AppImage
python -m appimage.ctl

# Optionally: persist detected values to pyproject.toml to pin or adjust them
python -m appimage.ctl init

Reproducible builds

Covers bytecode compilation, file timestamps, and the appimagetool binary itself - appimage defaults to the maintained successor of the classic tool, whose bundled mksquashfs has a documented non-deterministic compression bug.

To guarantee this across machines and over time too, with every dependency hash-verified:

python -m appimage.ctl enable-reproducible   # pin the toolchain, hash-pin every
                                              # dependency, verify with a real build,
                                              # then turn reproducible = true on

See Reproducible builds for what's automatic, how to pin appimagetool/Python for cross-machine guarantees, and how to hash-verify third-party dependencies with lock.

Bundled interpreter access

The bundled Python is accessible at runtime without extracting the AppImage:

./myapp-x86_64.AppImage --python-interpreter            # interactive REPL
./myapp-x86_64.AppImage --python-interpreter script.py  # run a script
./myapp-x86_64.AppImage --python-interpreter -m pip list
./myapp-x86_64.AppImage --python-list-entry-points      # list all entry points
./myapp-x86_64.AppImage --python-entry-point other:main # switch entry point

Virtual environments

The AppImage can act as the Python interpreter for a virtual environment. Packages installed into the venv extend the bundled ones, without repackaging the AppImage:

./myapp-x86_64.AppImage --python-interpreter -m venv ~/.venv/myapp
~/.venv/myapp/bin/pip install extra-package
~/.venv/myapp/bin/myapp

When launched through a venv symlink, the bundled appimage module activates the environment automatically.

Configuration

All options go in [tool.appimage] inside pyproject.toml, and every key is optional. Lifecycle hooks, extra files, custom AppRun scripts, and environment variable injection are supported. See the full documentation for details.

Download files

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

Source Distribution

appimage-3.0.0.tar.gz (84.7 kB view details)

Uploaded Source

Built Distribution

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

appimage-3.0.0-py3-none-any.whl (93.6 kB view details)

Uploaded Python 3

File details

Details for the file appimage-3.0.0.tar.gz.

File metadata

  • Download URL: appimage-3.0.0.tar.gz
  • Upload date:
  • Size: 84.7 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for appimage-3.0.0.tar.gz
Algorithm Hash digest
SHA256 41a06a57b0949d65ed893013ed2dc8efae21b1c548b7dac00b24e0be5715184a
MD5 57a34bed4390a577a5bb42da1536cd54
BLAKE2b-256 79dd8859635f1d236a219493eb008b54dc99ea28f817cd10af8a71aa6348b8c5

See more details on using hashes here.

Provenance

The following attestation bundles were made for appimage-3.0.0.tar.gz:

Publisher: python-publish.yml on ssh-mitm/appimage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file appimage-3.0.0-py3-none-any.whl.

File metadata

  • Download URL: appimage-3.0.0-py3-none-any.whl
  • Upload date:
  • Size: 93.6 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for appimage-3.0.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f2a2a6d0e4e927c069f9b012e62682a84b6157324acb69692b4c3a23da08f783
MD5 ed6f6d711ffc55433ad905b22e54f9ce
BLAKE2b-256 f405ad2b32c1f9f95dc2aa6f4b407da3f2a1c0ea2e16af34191c8ab44f34ee06

See more details on using hashes here.

Provenance

The following attestation bundles were made for appimage-3.0.0-py3-none-any.whl:

Publisher: python-publish.yml on ssh-mitm/appimage

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

4.0.1

2 files

4.0.0

2 files

3.0.1

2 files

This release

3.0.0 This release

2 files

2.0.1

2 files

2.0.0

2 files

1.2.0

2 files

1.1.1

2 files

1.1.0

2 files

1.0.0

2 files

0.0.0

2 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