https://github.com/ssh-mitm/appimage
AppImage start scripts
https://github.com/ssh-mitm/appimage
Last synced: about 1 month ago
JSON representation
AppImage start scripts
- Host: GitHub
- URL: https://github.com/ssh-mitm/appimage
- Owner: ssh-mitm
- License: gpl-3.0
- Created: 2024-05-17T08:19:29.000Z (about 2 years ago)
- Default Branch: main
- Last Pushed: 2024-05-27T12:03:38.000Z (about 2 years ago)
- Last Synced: 2025-03-19T10:11:19.277Z (over 1 year ago)
- Language: Python
- Size: 58.6 KB
- Stars: 2
- Watchers: 0
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
- Code of conduct: CODE_OF_CONDUCT.md
- Security: SECURITY.md
Awesome Lists containing this project
README
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](https://github.com/astral-sh/python-build-standalone) — identical to what `uv python install` provides. What you develop with locally is what gets shipped in the AppImage.
## Quick Start
```sh
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.
```sh
# 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:
```sh
./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:
```sh
./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:
```toml
[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.
→ **[Full documentation](https://appimage.readthedocs.io)**