Our new eGenix PyRun™
combines a Python interpreter with an almost complete Python standard
library into a single easy-to-use executable, that does not require a system wide installation and is fully relocatable.
eGenix PyRun's executable only needs 11MB, but still supports most Python application and scripts - and it can be further compressed to 3-4MB using gzexe or upx.
Compared to a regular Python installation of typically 100MB on disk,
this makes eGenix PyRun ideal for applications and scripts that need to be
distributed to many target machines, client installations or
It makes "installing" Python on a Unix based system as simple as copying a single file.
We have been using the product internally in our mxODBC Connect Server
since 2008 with great success and have now extracted it into a
stand-alone open-source product.
We provide both the source archive to build your own eGenix PyRun, as well as pre-compiled binaries for Linux, FreeBSD and Mac OS X, as 32- and 64-bit versions.
This is a new minor release of eGenix PyRun, which contains a few important fixes and enhancement based on the user feedback we received.
The new release includes a new script called install-pyrun,
which greatly simplifies installation of eGenix PyRun, which works much
like the virtualenv shell script used for creating new virtual
environments (except that there's nothing virtual about PyRun
Using the script, the eGenix PyRun installation is as simple as running:
Added new simple end-to-end test for the PyRun build process: make test-distribution.
Added support to import top-level frozen modules via -m. For packages this still fails due to bugs in Python itself.
Added a new easy to use pyrun installation shell script: install-pyrun.
install-pyrun will now default to eGenix PyRun 1.1.0.
install-pyrun now has a new --pyrun-distribution option to
manually direct the script to a distribution file. This comes in handy
when testing your own eGenix PyRun distributions.
Optional readline module included in our binary builds now
links against readline version 6 instead of 5. This should resolve
readline issues on modern Linux installations.
Resolved an issue related to sys.argv that prevented
installation of e.g. numpy and lxml with pyrun. We've tested PyRun
installation with numpy, lxml, Cython, Django, Trac and several other popular packages. They should all install fine now.
PyRun now reads scripts from stdin when used as filter or when providing '-' as script name.
Documented that setuptools/distribute and pip are not designed to be relocatable - unlike PyRun itself.
Most references to the pyrun build directory are now replaced with "<pyrun>". This reduces the pyrun binary size and also avoids confusion when looking at tracebacks.
Backported a patch to have Python 2.5 compile on systems that have a more recent version of svnversion installed.
Overall, we've managed to push the size down from 12MB in 1.0.0 to 11MB in this new release.
Thanks go to Pavlos Christoforou for providing lots of good feedback, which triggered many of the above enhancements.