[wxPython-users] Distribution & Auto-Updater

Kevin Ollivier kevino at theolliviers.com
Tue May 1 15:39:10 PDT 2007


Hi Marcus,

On May 1, 2007, at 3:19 PM, Marcus wrote:

> Hi,
>
> Our current client software is written in C++, and we are planning  
> to do a rewrite. It currently consists of an EXE and several DLLs,  
> and it is bootstrapped by an updater procedure that allows any of  
> the DLLs / EXEs to be updated via an automatic download.
>
> I'm looking at implementing the rewrite in one of wxPython, wx/C++,  
> Mono/C#, or possibly Java. We need the app to be cross-platform,  
> hence those choices are the most prominent choices.
>
> My only concern with using Python on the client-side is the  
> distribution and updater issue. I've read py2exe's docs and info  
> about pyInstaller and the like, but I don't see an easy way to  
> divide an application into DLL-like modules so that users can  
> download just a portion of the application at a time, without  
> resorting to storing all of my python source code on the client in  
> cleartext.

You could distribute just the .pyc files, which IIUC are like Java  
bytecode files, if you want to avoid sending the files in clear text.  
I will say, though, that I don't know if there's a way to "reverse- 
engineer" source files from those bytecode files. You could try  
running pyobfuscate (http://www.lysator.liu.se/~astrand/projects/ 
pyobfuscate/) on the source files first to make it so that even if  
they are decompiled, they won't (easily) be human readable.

Auto-updating would probably be tricky using py2exe or pyInstaller,  
as they tend to bundle everything into a big zip file, or compress it  
into the primary exe. You might want to try an approach like the one  
Documancer (http://www.sf.net/projects/documancer) uses, which is to  
ship your pyc/dll modules along with a mini-python containing only  
the bits of Python you need. (Documancer uses a script with some  
manual tweaks to determine what parts of Python to ship.) This way  
your auto-updater can update only the pyc/dll files that have changed  
since the last release. It's a bit more work than just letting py2exe/ 
pyInstaller handle things, but I suspect much less work than using C+ 
+ to build your app. ;-)

Regards,

Kevin

> I can distribute the app via an installer on their first run, but  
> the auto-updater is very useful in this case because the DLLs for  
> my app are  updated fairly frequently.
>
> Perhaps Python isn't the right tool for the job, since it wasn't  
> really intended to keep source code obfuscated and modular at the  
> same time. It just seems like Python would be much more elegant  
> than a wx/C++ solution.
>
> Any suggestions?
>
> Thanks,
>
> Marcus
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: wxPython-users-unsubscribe at lists.wxwidgets.org
> For additional commands, e-mail: wxPython-users- 
> help at lists.wxwidgets.org
>





More information about the wxpython-users mailing list