Re: py2exe automatic upgrades of a program while it is running, is that possible?

2009-03-03 Thread Patrick Mullen
On Mon, Mar 2, 2009 at 6:56 PM, Maxim Khitrov mkhit...@gmail.com wrote:
 - Show quoted text -
 On Mon, Mar 2, 2009 at 9:18 PM, William Heath wghe...@gmail.com wrote:
 Hi All,
 I am using py2exe to create a windows executable.  I am curious if anyone
 knows a way to automatically upgrade a py2exe windows executable while it is
 running.  Is that possible?  If so how?  If it isn't possible, what is the
 next best thing?  Also, if it is not available using py2exe is it available
 in other languages/solutions your aware of?
 -Tim

Here's what I did, which works really well.  The main script imports
other python modules which do the real work of the program.  It is
only a few lines long and looks something like this:

import main
main.run()


There is more stuff there, imports etc to help py2exe find everything,
but that's the basic idea.  Then, to upgrade the program, all I have
to do is replace the modules which are in a subfolder.  (And be
careful to reload them, which has its own considerations).

I do some wonky stuff in my build script to delete my main modules
from library.zip since its easier to replace them outside of that, you
could also use the skip-archive option to not use the .zip file at
all.

You really can't replace an exe itself while its running, I would
avoid that as much as possible.  Workarounds to do this are highly
prone to error.
--
http://mail.python.org/mailman/listinfo/python-list


py2exe automatic upgrades of a program while it is running, is that possible?

2009-03-02 Thread William Heath
Hi All,
I am using py2exe to create a windows executable.  I am curious if anyone
knows a way to automatically upgrade a py2exe windows executable while it is
running.  Is that possible?  If so how?  If it isn't possible, what is the
next best thing?  Also, if it is not available using py2exe is it available
in other languages/solutions your aware of?

-Tim
--
http://mail.python.org/mailman/listinfo/python-list


Re: py2exe automatic upgrades of a program while it is running, is that possible?

2009-03-02 Thread Maxim Khitrov
On Mon, Mar 2, 2009 at 9:18 PM, William Heath wghe...@gmail.com wrote:
 Hi All,
 I am using py2exe to create a windows executable.  I am curious if anyone
 knows a way to automatically upgrade a py2exe windows executable while it is
 running.  Is that possible?  If so how?  If it isn't possible, what is the
 next best thing?  Also, if it is not available using py2exe is it available
 in other languages/solutions your aware of?
 -Tim

I don't think there is a way to do this directly. The best thing that
I can think of is to have your program to use the subprocess or
multiprocessing modules to launch a second instance of itself when an
update is required. The parent would pass the child any necessary data
so the child could continue where the parent left off, have child
acknowledge this transaction, and then the parent can exit. Depending
on what your program is actually doing this may not be a reasonable
solution. Look into os.pipe, multiprocessing.Queue, and
subprocess.Popen.communicate. If you have pywin32 extension installed,
win32event module contains a number of useful functions for things
like creating inter-process events.

- Max
--
http://mail.python.org/mailman/listinfo/python-list