[Pythonmac-SIG] Universal binary build of py2app application won't run on 10.3.9

Bob Ippolito bob at redivi.com
Wed Jun 28 20:56:53 CEST 2006


On Jun 28, 2006, at 11:46 AM, Michael Glassford wrote:

> Bob Ippolito wrote:
>> On Jun 28, 2006, at 10:02 AM, Michael Glassford wrote:
>>> I've built a universal binary build of an application that runs   
>>> great on
>>>     the Tiger machines that I've tested it on (both PowerPC and   
>>> Intel).
>>> However, when I try to run it on PowerPC 10.3.9 (which I've been   
>>> led to
>>> believe should work from comments in the PyObjC svn log), I get   
>>> this error:
>> Python itself works on 10.3.9 as compiled universally. Not every   
>> single extension has been audited for compatibility, obviously.
>
> Sure, I understand that.
>
>>> """
>>> ImportError: Failure linking new module: /usr/lib/libbz2.1.0.dylib:
>>> dyld: /Volumes/GoombahDisk/Goombah.app/Contents/MacOS/Goombah  
>>> can't  open
>>> library: /usr/lib/libbz2.1.0.dylib  (No such file or directory,   
>>> errno = 2)
>>> """
>>>
>>> When I investigate, /usr/lib/libbz2.1.0.dylib is present on the  
>>> Tiger
>>> machine I've checked but not on the Panther machine where I'm   
>>> having the
>>> problem, so that makes sense. The application does in fact use  
>>> the  bzip2
>>> library; the error happens on an "import bz2" statement. And Py2App
>>> py2app is including bz2.so in
>>> MyApp.app/Contents/Resources/Python/lib-dynload. But apparently  
>>> bz2.so
>>> links to /usr/lib/libbz2.1.0.dylib.
>>>
>>> The question is, how do I get py2app to include the necessary  
>>> files to
>>> eliminate this dependency? Or what else can I do?
>> There's nothing you can really do about this other than replace  
>> the  bz2 extension with one that links statically and universally  
>> against  your own copy of libbz2.
>
> I'd be glad to do this, but it's not clear to me how. Can you point  
> me to any information?

The bz2 module is part of the Python distribution. The best route  
would be to download the Python source, extract the source for the  
bz2 extension and create a standalone setup.py for it. Tweak it such  
that it links to a copy of libbz2 that you've compiled statically and  
universally, and then replace your Python installation's bz2 with  
that one.

It's not really trivial, but it's the only option you have unless  
someone else does it first. It sounds like Ronald will probably  
create another 2.4.3 installer in the future that fixes this and a  
few other issues, but I don't know when he'll get around to it (if  
ever, I don't speak for his free time).

In your situation, I would just give up on 10.3 users until the issue  
with Python is resolved (which is either going to happen when 2.5  
comes out, or when the 2.4.3 installer gets updated).

-bob



More information about the Pythonmac-SIG mailing list