Package Python applications as self-contained AppImages
Project description
appimage
Package Python applications as self-contained AppImages.
appimage bundles a complete Python distribution together with your application and all its dependencies into a single executable file.
The same Python that uv installs. The bundled interpreter comes from python-build-standalone — identical to what
uv python installprovides. What you develop with locally is what gets shipped in the AppImage.
Quick Start
pip install appimage
A pyproject.toml is all that's needed — and if your project already has one, you're ready to build.
app, entry_point, and python version are read from [project] automatically.
# Check what will be detected before building
python -m appimage.build --check
# Build — the AppImage is written to dist/myapp-x86_64.AppImage
python -m appimage.build
# Optionally: persist detected values to pyproject.toml to pin or adjust them
python -m appimage.build --init
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.
Reproducible builds
Pin the exact Python release to get byte-for-byte reproducible AppImages:
[tool.appimage.build]
python_date = "20260211"
Configuration
All options go in [tool.appimage.build] inside pyproject.toml — every key is optional. Lifecycle hooks, extra files, custom AppRun scripts, and environment variable injection are supported.
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
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 appimage-2.0.0.tar.gz.
File metadata
- Download URL: appimage-2.0.0.tar.gz
- Upload date:
- Size: 54.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
053849a79f5376022e48f1b2f4ba9fd595660182486fa4f9b0c3f1f8cb49f651
|
|
| MD5 |
fb270df7ede355c7b6637df8cb60b32c
|
|
| BLAKE2b-256 |
451ace4d4918b85bf7fa0da7093c65be1badd4d9e86f3eab9190ff50cc42dd62
|
Provenance
The following attestation bundles were made for appimage-2.0.0.tar.gz:
Publisher:
python-publish.yml on ssh-mitm/appimage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
appimage-2.0.0.tar.gz -
Subject digest:
053849a79f5376022e48f1b2f4ba9fd595660182486fa4f9b0c3f1f8cb49f651 - Sigstore transparency entry: 1497608039
- Sigstore integration time:
-
Permalink:
ssh-mitm/appimage@cf08e2a8644da4a7a5ec294e6bd7bcacca7a576c -
Branch / Tag:
refs/tags/2.0.0 - Owner: https://github.com/ssh-mitm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@cf08e2a8644da4a7a5ec294e6bd7bcacca7a576c -
Trigger Event:
release
-
Statement type:
File details
Details for the file appimage-2.0.0-py3-none-any.whl.
File metadata
- Download URL: appimage-2.0.0-py3-none-any.whl
- Upload date:
- Size: 52.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
18df34f9f5a01c4cacf97254f28531c443a48e54c4be4ce44fa1dfea52bd63a2
|
|
| MD5 |
d1b7cb53cd88dc52edb9e31e1f95ac9f
|
|
| BLAKE2b-256 |
12fc2055c4f53f508fe63a8fadd58e393c5c02c51e620805b7d0c724eb71ac21
|
Provenance
The following attestation bundles were made for appimage-2.0.0-py3-none-any.whl:
Publisher:
python-publish.yml on ssh-mitm/appimage
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
appimage-2.0.0-py3-none-any.whl -
Subject digest:
18df34f9f5a01c4cacf97254f28531c443a48e54c4be4ce44fa1dfea52bd63a2 - Sigstore transparency entry: 1497608164
- Sigstore integration time:
-
Permalink:
ssh-mitm/appimage@cf08e2a8644da4a7a5ec294e6bd7bcacca7a576c -
Branch / Tag:
refs/tags/2.0.0 - Owner: https://github.com/ssh-mitm
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
python-publish.yml@cf08e2a8644da4a7a5ec294e6bd7bcacca7a576c -
Trigger Event:
release
-
Statement type: