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

Patrick Mullen saluk64007 at gmail.com
Tue Mar 3 03:20:18 EST 2009


On Mon, Mar 2, 2009 at 6:56 PM, Maxim Khitrov <mkhitrov at gmail.com> wrote:
> - Show quoted text -
> On Mon, Mar 2, 2009 at 9:18 PM, William Heath <wgheath at 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.



More information about the Python-list mailing list