pyzipper ======== A small tool to package up a Python program and associated data files as a single executable zip file. All the facilities for this are already built into Python, this script just ties it all together with a bow. `demo1` and `demo2` are two trivial sample packages. The `Makefile` is just a driver for the demos. `pyzipper` itself is all you need if you want to use this yourself. Tested with both Python 2 and Python 3, should work with either. How it works ------------ This relies on two somewhat obscure Python features: * The `zipfile.PyZipFile` class's ability to construct an executable ZIP file and populate it with Python modules, packages, and data; and * Python's ability to treat a zip file as equivalent to a directory tree on `import`. `demo1` takes advantage of a third obscure feature: the `pkgutil` library's ability to load data files via the `import` system. Usage ----- This is what `pyzipper --help` returns as of this writing. The program itself is authoritative, this is just a snapshot for convenience. ```text usage: pyzipper [-h] -o OUTPUT [-m MODULE] [-e EXECUTABLE] source Generate an executable Python zip package. positional arguments: source optional arguments: -h, --help show this help message and exit -o OUTPUT, --output OUTPUT -m MODULE, --module MODULE module within package to run (default: main) -e EXECUTABLE, --executable EXECUTABLE python executable to run (default: python) ```