Pushed to vinay.sajip/simple_launcher
9185c15 Updated print specifications.
This is a simple launcher for Python files, which is functionally equivalent to the launchers in setuptools but not based on setuptools code. There are two versions of the launcher - console and GUI - built from the same source code. The launcher has been written as part of the pythonv branch, and is intended to facilitate location of the correct Python executable for a script in an environment where there may be multiple versions of Python deployed. The launcher is intended to facilitate script execution under Windows where a PEP 397-compatible launcher is not available. The idea is that each Python script has a copy of the launcher (symlinks not being generally available under Windows). For scripts to work with the launcher, they have to have a name ending in -script.py (for a console script) or -script.pyw (for a GUI script). The deployment system (e.g. packaging) will ensure that for foo-script.py, a console launcher opy named foo.exe is placed in the same directory; for bar-script.pyw, a GUI launcher copy named bar.exe is placed in the same directory. Assuming that the relevant directories are on the path, the scripts can be invoked using just "foo" or "bar". The foo.exe or bar.exe executable then runs: it looks for a script with the appropriate suffix ("-script.py" or "-script.pyw") in the same directory, and if found, opens that script to read a shebang line indicating which Python executable to use for the script. That executable, if found, is launched with the script and other arguments passed: foo a b c -> c:\path\to\python.exe c:\other\path\to\foo-script.py a b c bar d e f -> c:\path\to\pythonw.exe c:\other\path\to\bar-script.pyw d e f Note: More recently, the launchers have been updated to find their script in an archive appended to the executable, rather than a separate file. (This variant is enabled when APPENDED_ARCHIVE is #defined). This allows the launchers to be used to e.g. run .pyz archives as native Windows executables.