[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