[Pythonmac-SIG] Zope py2app, some progress
Bob Ippolito
bob at redivi.com
Thu Feb 10 08:43:44 CET 2005
On Feb 10, 2005, at 2:38 AM, Bob Ippolito wrote:
>
> On Feb 10, 2005, at 2:25 AM, Roger Binns wrote:
>
>>> I'd like to see that pie slice for the Mac OS X build to shrink even
>>> further..
>>
>> You aren't satisfied with being the smallest amount of code already
>> ?-)
>
> I don't really care what the other platforms look like, but I want
> py2app setup files to be as compact as possible so that the barrier to
> entry is very low, and so that it's easy enough to shrug off distutils
> when that makes sense (i.e. py2applet).
>
>>> I took at a look at your setup.py, and it looks a fair amount of it
>>> doesn't need to be specified:
>>
>> More accurately you are looking at code that has evolved over two
>> years
>> and for the Mac bits used to support BundleBuilder and has to build
>> the 10.2 and 10.3 packages differently.
>>
>>> Other than removing whitespace, I think that's about all I can do to
>>> make your setup shorter :)
>>
>> I'm not particularly concerned with how long it is. The point of
>> the original slides was how little work it is to take a full featured
>> Python graphical application and distribute it as a native app without
>> the user knowing or caring that it is in Python or having to install
>> any pre-requisites.
>
> Which is rather impressive, considering how stupid the tools are --
> but it doesn't really need to take much code at all. For applications
> organized in a sane manner, py2app can do it with just a drag+drop of
> your main script and any data files you use. I'll probably add code
> to be able to pull a __version__ out of your main script, since I have
> that written for something else anyway.
>
>> Incidentally a number of people over time have taken copies of that
>> script for their own projects.
>>
>> The biggest problem on Mac at the moment is having to distribute
>> two versions (one for 10.2 and one for 10.3). Second to that is
>> the sheer size of the download.
>
> So don't bother building a 10.3 version. The 10.2 version should work
> fine.
>
>> Platform DownloadSize InstalledSize
>>
>> Windows 7.4MB 27MB
>> Linux 10.5MB 30MB
>> Panther 14.9MB 40MB
>>
>> The good news is I found the cause and fix. A whole bunch of the
>> wxPython/wxWidgets libraries don't respond to strip or have been
>> stripped. However running "strip -x" does remove a whole bunch
>> more gunk that plain "strip" doesn't. (IIRC cx-Freeze runs strip on
>> executable files/libraries automatically.)
>>
>> Adding another Mac specific line (:-) to makedist.py to automatically
>> run the strip reduces the download to 10.4MB and the installed size
>> to 20.6MB.
>
> Did you know py2app had a --strip option, which does strip -x -S?
> It's had this as long as I can remember, but it's gone now :) I think
> even bundlebuilder had it, but it may have had more naive strip
> options.
>
> 0.1.8 (svn trunk) has --strip as default, so --strip is a no-op and
> there's now a --no-strip to turn it off.
>
>> Note also that both Windows and Linux don't compress the contents
>> of the zip file containing all the .pyo files. py2app also looks
>> like it does a way better job of excluding unneeded .pyo files.
>
> I decided to compress always and by default because CPU is cheap and
> IO is not.. I couldn't find a compelling reason to use an uncompressed
> zip, just like I decided not to bother stripping. If you want to run
> your app under gdb, you should probably be using an alias bundle...
Er, just like I decided to strip by default... It's late.
-bob
More information about the Pythonmac-SIG
mailing list