Esky is an auto-update framework for frozen Python applications. It provides a simple API through which apps can find, fetch and install updates, and a bootstrapping mechanism that keeps the app safe in the face of failed or partial updates.
Esky is currently capable of freezing apps with py2exe, py2app, cxfreeze and bbfreeze. Adding support for other freezer programs should be straightforward; patches will be gratefully accepted.
- Python2.6 support may be depreciated (as moving codebase to python3)
- Bbfreeze will be depreciated
- Py2exe is bugged and doesn't really work..
Ryan has done a talk at pycon to help you get started:
The simplest way to install esky is
pip install esky
however esky on pypi is bugged and will most likely spit errors. Until we get this fixed just do:
git clone git@github.com:cloudmatrix/esky.git
pip install -e esky
To uninstall python setup.py develop --uninstall
Freezing your app with esky requires the setup file to be modified, you are then able to run
python setup.py bdist_esky
which will setup the correct directory structure for esky to work
-
see the tutorial which will guide you through setting up and freezing with esky.
-
for more information on the setup file see Setup file Options
The main interface is the 'Esky' class, which represents a frozen app.
A simple example of using the esky class to automatically update is given
in the tutorial.
Check Using the Esky Class on customizing the process. Esky is currently capable of hitting a http server and there is a patch for amazon s3 which should be merged soon.
There is also a wrapper for esky in for the gui library wxpthon, see blog post
See the [Contributing Guide] (https://github.com/cloudmatrix/esky/wiki/Contributing)