|
| 1 | +# uv-zipapps-gui |
| 2 | + |
| 3 | +A Tkinter-based GUI for [zipapps](https://github.com/Clericpy/zipapps) configuration and Python version management via [uv](https://github.com/astral-sh/uv). |
| 4 | + |
| 5 | +## Features |
| 6 | + |
| 7 | +- **ZipApps Config** — Visual editor for all zipapps build options: entry point, interpreter, pip packages, includes, unzip rules, lazy install, layer mode, and more. Build `.pyz` files or package distributable bundles (pyz + interpreter + launcher) with one click. |
| 8 | +- **Python Manager** — Browse, filter, install, and delete Python versions through uv. Auto-detects installed versions and sets the interpreter path for builds. |
| 9 | +- **Cross-platform** — Works on Windows, macOS, and Linux. Generates platform-appropriate launchers (`.bat`/`.vbs` on Windows, `.sh` on Unix). |
| 10 | + |
| 11 | +## Install |
| 12 | + |
| 13 | +```bash |
| 14 | +pip install uv-zipapps-gui |
| 15 | +``` |
| 16 | + |
| 17 | +Requires Python >= 3.12 and [zipapps](https://github.com/Clericpy/zipapps) >= 2026.4.17. |
| 18 | + |
| 19 | +## Usage |
| 20 | + |
| 21 | +```bash |
| 22 | +uv-zipapps-gui |
| 23 | +# or run directly without installing: |
| 24 | +uvx uv-zipapps-gui |
| 25 | +``` |
| 26 | + |
| 27 | +### Quick Start |
| 28 | + |
| 29 | +1. **Python Manager tab** — Set uv path (auto-detected if in PATH), select a Python version, and click **Install Selected**. |
| 30 | +2. **ZipApps Config tab** — Configure build options, then click **pyz** to build a `.pyz` file, or **Dist** to create a distributable package. |
| 31 | +3. Use **Load Config** / **Export Config** to save and restore build settings as JSON. |
| 32 | + |
| 33 | +## Build Options |
| 34 | + |
| 35 | +| Option | Description | |
| 36 | +|--------|-------------| |
| 37 | +| Output (`-o`) | Path of the output `.pyz` file | |
| 38 | +| Interpreter (`-p`) | Python interpreter for the shebang line | |
| 39 | +| Entry point (`-m`) | `package.module:function` format | |
| 40 | +| Pip packages | Packages to install via pip | |
| 41 | +| Includes (`-a`) | Extra paths to copy into the archive | |
| 42 | +| Unzip (`-u`) | Names to extract at runtime (native extensions) | |
| 43 | +| Compress (`-c`) | Deflate compression | |
| 44 | +| Lazy install (`-d`) | Defer pip install to runtime | |
| 45 | +| Layer mode | Serverless-friendly layout without `__main__.py` | |
| 46 | +| Build ID (`-b`) | Skip duplicate builds based on file mtime | |
| 47 | +| Dist | Package pyz + interpreter + launcher for distribution | |
| 48 | + |
| 49 | +## License |
| 50 | + |
| 51 | +MIT |
0 commit comments