I started ripping apart py2exe to see what tasty little chunks could be used in py2app (its evil Mac OS X clone-to-be). It seems like a lot of py2exe is almost cross-platform-ish, but most of the logic is just in one huge Python script.
So far the only working code I have is the modulefinder based code, plus a whole bunch of hacks to ignore modules that should be ignored. The result is find_modules.py, which is almost 400 lines long and should be totally cross-platform-ish (far more so than py2exe, anyway). Basically it knows how to ignore a non-definitive list of platform specific modules based upon which platform you're currently using.
Perhaps at some point this little ugly monster could be shared between several packaging projects (py2exe, py2app, cx_Freeze, etc.)? I'm not sure if it can go into py2exe as-is, because I used a bunch of Python 2.3+ features.
|