[Python-Dev] hook for standalone executable

Oren Tirosh oren-py-d at hishome.net
Sun Aug 10 16:51:58 EDT 2003


On Sat, Aug 09, 2003 at 06:06:26PM +0200, "Martin v. Löwis" wrote:
> Skip Montanaro wrote:
> 
> >It wasn't me. I agree it seems a tad fragile, however it will probably be 
> >a
> >lot easier than coming up with a "portable" way for the interpreter to know
> >its size.  I'd suggest a command line flag but I don't think that's going 
> >to
> >fly either.
> 
> I recommend to drop the requirement that simple appending of .zip file 
> needs to work, and suggest to use platform-specific mechanisms on each 
> platform. These mechanisms should arrange to patch a variable, 
> Py_EmbeddedZipfile. 

If the solution is patching a variable in the executable there is one
variable that controls all aspects Python initialization: argv.

A variable called Py_OverrideArgv will contain by default a unique 
signature. An external tool can search for this signature and replace it
with a customized string. If not modified, the interpreter will use the 
real argv. If it is modified the interpreter will use it instead of argv
and apply all standard argv processing including flags and -c. The only 
difference will be that PySys_SetArgv will still be called with the real 
argv to make the real arguments accessible to the script. I think the 
modification should be less than 20 lines of code.

A tool like py2exe could take the python interpreter, copy it and append
the zip archive. While copying it can search for the unique signature 
and replace it with something like:

'-O -Whatever -c "import sys; sys.path.append(sys.executable); import boot'

   Oren



More information about the Python-Dev mailing list