Win32 Installer - new beta

Gary Herron gherron at aw.sgi.com
Wed Aug 18 16:11:31 EDT 1999


Gordon McMillan wrote:
> 
>  A new beta (02) of the Win32 Installer package is available on
> starship:
> 
>  http://starship.python.net/crew/gmcm/install.html
> 
> This release incorporates bug fixes and some enhancements:
> 
>   The major changes are that command line arguments are
>   passed into your script, and a standalone / installer can be run
>   from anywhere -it is no longer assumed that the current working
>   directory is also the directory the program lives in. Files are
>   always unpacked into the "home" directory, and the absolute path of
>   the "home" directory is always available.
> 
>   See http://starship.python.net/crew/gmcm/install.html#beta02 for
>   details.

Gordon,

Nice work!  With enough work to gain an understanding of this thing, I
was able to get to within inches of what I really wanted.  I'd like to
suggest a small change to allow me to get all the way to my goal.

First the suggestion, then (in case you care) the description of what
I'd use it for.

There appears to be two differences between Run.exe and Runw.exe:
  (1)  Run.exe is a console app, and Runw.exe is not.
  (2)  Run.exe cleans up all its extracted files, and Runw.exe does not.

Are these two features necessarily connected. From looking at the
compiler switches un uplaunch.cpp, I'd say not.  What I'd really like is
a version that is NOT a console app but DOES cleanup after itself.

Is there a good reason why Runw.exe does not cleanup after itself?

OPTION 1: If not, lets compile Runw.exe with the cleanup flag on.

OPTION 2: If there is a good reason to leave Runw.exe alone, then can we
include a third Run?.exe that is compiled with the flags set the way I'm
suggesting, and perhaps, for completeness sake, a fourth version so that
all four combinations of console/no-console and cleanup/no-cleanup are
covered?

Here is why I want such thing.  I'm building a .exe (using one INSTALL
and one PYZ section) which wraps up a GUI script (pyWindows/wxWindows in
this case) with a carchive containing all of its binary dependencies and
single PYZlib containing all of its python script dependencies.  When
run, it unpacks the carchive in the local directory, and runs the script
which gets all of its binary dependencies and python imports from these
files.  Upon completion, all these files are cleaned up.  The only hitch
is the damned console window which comes up and remains blank.  (The
script is a GUI so there is no console input or output.)  If I modify
builder.py to use Runw.exe instead of Run.exe (or better yet modify the
InstallTarget class to honor the userunw flag similarly to the RunTarget
class), then the console window goes away, but the current directory is
left with a dozen or two files not cleaned up.

If you care to look at it, my config file looks like this:

[EVERYTHING]
type= INSTALL
name= app.exe
script= app.py
zlib= PYZLIB
bindepends= app.py

[PYZLIB]
name= app.pyz
dependencies= app.py, ..\installer\support\installutils.py
excludes= dospath, posixpath, macpath
includes= ..\installer\support\installutils.py

The only modification I have to make to my normal application to run in
this environment is to put
  from installutils import *
at the top and, at the bottom, execution cannot be based on the usual
  if __name__ == '__main__':

As I said before, I really like this package.  If I could get rid of the
console I'd REALLY like this package.  I may attempt to compile my own
version of Run?.exe, but I'm an old Unix weenie still learning to swim
in the deep end of the Windows pool.  Any help you could provide would
be appreciated.

Thanks
Gary Herron

-- 
Dr. Gary Herron <gherron at aw.sgi.com>
206-287-5616
Alias | Wavefront
1218 3rd Ave, Suite 800, Seattle WA 98101




More information about the Python-list mailing list