R Fritz wrote:
OK. The app works, well, sort-of. (Alpha, 0.12.1.) So now I want to
package it for Windows (& then Mac, & then Linux.) It's a mutt of an
app, with a GUI in WxPython, and 3D visualization component that uses
OpenSceneGraph, C++ wrappers, and Boost.Python. Any advice for someone
who hasn't done this before?
Mac:
On the Mac, the only choice is py2app to make your app a stand-alone -
it will probably require some tweaking by hand, as py2app is a bit
under-maintained, but it's not too hard to do that. Mac app bundles are
really just directories with a particular structure, so it's not hard to
manipulate them with a little custom python in your setup.py.
NOTE: I think PyInstaller has some Mac support now -- I'm not sure what
the state of that is, but it may be worth checking out.
You can build a Mac mpkg if you need to install stuff outside the app
bundle -- I haven't done it, but again, it's pretty much a directory
with some xml describing it -- doesn't look too hard.
Windows:
py2exe or PyInstaller. I've been using py2exe, but I've been getting
frustrated with it lately -- it seems a bit under-maintained as well. I
haven't tried PyInstaller.
You can use InnoSetup to make an installer -- it's a nice, easy to use tool.
Linux:
The best way is probably distro-specific packages -- a pain if you want
to support a lot of distros, but it works. Ideally you have a at least
one savy user for each distro that can maintain the package. You can
also use PyInstaller on Linux, but it's still going to depend on system
libs, etc. I've never tried that.
there is also cxFreeze and bbFreeze. bbFreeze looks pretty good, but is
missing a few features. I've never looked at cxFreeze.
Too many options!
-Chris
--
Christopher Barker, Ph.D.
Oceanographer
Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception
[email protected]