[Pythonmac-SIG] py2app annoyance

Kevin Walzer kw at codebykevin.com
Tue Jan 26 15:45:42 CET 2010


On 1/25/10 1:52 PM, Christopher Barker wrote:
> Kevin Walzer wrote:
>> py2app may be more powerful than BundleBuilder, but it is also a
>> complex, fragile beast. It consists of several different packages,
>> requiring both a) a deep understanding of OS X mach-o internals and
>> how libraries/load paths/dyld bits are loaded;
>
> I'm a bit confused by this -- how does bundle builder to it in a way
> that doesn't require this knowledge?

If I understand the code correctly, it uses modulefinder, which doesn't 
seem to work as well as the modulegraph stuff that py2app uses.

>
> The fact that it has worked better for you doesn't necessarily mean that
> it is more robust or more maintainable (though having tried to dig into
> the Py2app code a couple times, I agree that it is a challenge!).

It isn't more robust. I never claimed that. It may be more maintainable 
simply because it's a smaller code base--at least, I can grok its 
internals a bit better. And "works for me" is better than "doesn't work 
for me and I don't know how to fix it."

>
> But Ronald sees to think there are real advantages to py2app, and he
> would know.

He mentioned that bundlebuilder requires you to specify every file that 
you include. That's not entirely true, but modulefinder is less 
effective at picking up dependencies than modulegraph,  and you do have 
to do more trial and error with your builds. I believe that was the main 
complaint in the past.

>
> Are you offering to maintain BundleBuilder? I"ll take somthing actively
> maintained over something that isn't.

It doesn't need an active maintainer for Python 2.x because it's in the 
standard library, and shouldn't require any tweaking of build scripts 
that make use of it unless you're trying to build a 64-bit version of 
your app. (Argvemulator isn't supported in 64-bit because it's part of 
Carbon.) When I move my code base to Python 3.x, which won't happen 
until all the libraries I need are ported to work with 3.x, I will look 
at setting up a separate bundlebuilder project somewhere.

>
> Note that modulegraph is being used by bbfreeze as well, so it's not
> completely unmaintained.
>
> I still wish that the was more unification among all the executable
> builders, it does seem to be a waste of energy to have so much stuff
> repeated.

bbfreeze and pyinstaller have no constituency on the Mac right 
now--their Mac support is alpha-level at best. So I don't consider them 
to be part of the mix.

--Kevin

-- 
Kevin Walzer
Code by Kevin
http://www.codebykevin.com


More information about the Pythonmac-SIG mailing list