On Wed, Aug 14, 2013 at 9:58 AM, Vinay Sajip <vinay_sa...@yahoo.co.uk> wrote:
> IIUC PEP 441 is about tooling to create archives; don't we just need a 
> Python-compatible .zip (i.e. with a __main__.py)?

I meant that it has a #! line before the zip part, so that the
launcher knows what Python to invoke.

There are also some challenges for older Pythons to invoke __main__,
since the normal Python import machinery frowns on reloading __main__.
 I expect the zip would need an extra __main.py stub to bootstrap the
loading of __main__, and then invoke python with something like '-c
"__import__('sys').path[0:0]=['/path/to','path/to/exe''];
__import__('__main').go()"'.

(It can't have the import run the app as a side effect, because
otherwise the import lock will be held, leading to Bad Things in
multi-threaded apps.)


> This is less helpful; one might have N scripts per project, no need to stick 
> the whole project in with each one, or am I misunderstanding?

I just meant that for cases where there's only one script, or where
you are doing a custom-built application.  This also becomes The One
Obvious Way to do py2exe-like things.


> How would such an offset be used? Are you saying the -c scriptlet would use 
> that offset to extract the script? Or do you mean something else?

Extract the script by seeking to the offset and reading it.  It's far
from ideal, though; the .zip is much better since everything back to
2.3 can support it in some fashion.
_______________________________________________
Distutils-SIG maillist  -  Distutils-SIG@python.org
http://mail.python.org/mailman/listinfo/distutils-sig

Reply via email to