| Occasionally, there are situations where it's desirable to make an ``.egg`` |
| file directly executable. You can do this by including an entry point such |
| # other arguments here... |
| "setuptools.installation": [ |
| "eggsecutable = my_package.some_module:main_func", |
| Any eggs built from the above setup script will include a short executable |
| prelude that imports and calls ``main_func()`` from ``my_package.some_module``. |
| The prelude can be run on Unix-like platforms (including Mac and Linux) by |
| invoking the egg with ``/bin/sh``, or by enabling execute permissions on the |
| ``.egg`` file. For the executable prelude to run, the appropriate version of |
| Python must be available via the ``PATH`` environment variable, under its |
| "long" name. That is, if the egg is built for Python 2.3, there must be a |
| ``python2.3`` executable present in a directory on ``PATH``. |
| IMPORTANT NOTE: Eggs with an "eggsecutable" header cannot be renamed, or |
| invoked via symlinks. They *must* be invoked using their original filename, in |
| order to ensure that, once running, ``pkg_resources`` will know what project |
| and version is in use. The header script will check this and exit with an |
| error if the ``.egg`` file has been renamed or is invoked via a symlink that |