[Pythonmac-SIG] Crossplatform UI libraries best supported on the Mac?

Bob Ippolito bob at redivi.com
Tue May 24 17:57:12 CEST 2005


On May 24, 2005, at 8:35 AM, Karl Merkley wrote:

> All I can say is that I ported my very large, very complex app to the
> Mac during the last 6 month release cycle.  Qt was the least of my
> worries.   Everything worked great with a single code base on all my
> platforms.  I did run into one problem with custom cursors and I  
> had to
> disable them on the Mac.  A bummer but not a killer.    Yes, I did  
> have
> to do my own packaging using the installl_name_tool.  I had to build a
> script to build the bundle for me.  But I have so many component
> libraries and frameworks that I wanted to make sure that I know  
> exactly
> what is going on anyway.

But does it look and feel like a typical Mac OS X application?   
Though, it sounds like you have the sort of application where that  
doesn't really matter -- and maybe it's not even what you're going  
for (custom cursors!).

It's good that you spent the time to figure out how to package such  
an application on the Mac.  Most people don't... or if they do, they  
don't get far enough into it to do it correctly.

You shouldn't have to create such scripts or track components like  
that.  You're already linking to it, why should you have to do  
anything else?  The macho_standalone tool that comes with py2app does  
all of this automatically, you might want to take a look at it.

> BTW, I embed python in my app and I do it in the same method on all
> platforms and I do not use py2app to help me with that process.   I
> have been interested in your comments on that but as I have not had  
> any
> problems as of yet I haven't worried about it and the method that I am
> using works regardless of platform.

py2app does three things:

1. provides you with an embedded interpreter (either as an  
application or a plugin)
2. resolves and consolidates Python dependencies as best as it can
3. resolves and consolidates dyld dependencies and rewrites their  
Mach-O load commands

You've done all three of these things, by hand, for your specific  
application.  There's no compelling reason to switch your build  
process over, especially because it's cross-platform already and it  
doesn't sound broken.

In the general case, these tasks are time consuming and error prone.   
py2app takes the time out of it, and is pretty good about not  
introducing errors that weren't already there in the first place.   
Resolving Python dependencies isn't an exact science, but the  
embedded interpreter and Mach-O functionality is quite reliable.

-bob



More information about the Pythonmac-SIG mailing list