C++ ABI 1002/102 incompatibility with wxPython on OS X

I have a wxPython app (for OS X) that is built with py2app. A user
recently reported the following error when trying to run the app.

  Fatal Error: Mismatch between the program and library

build versions detected.

  The library used 2.8 (no debug,Unicode,compiler with C++ ABI

1002,wx containers,compatible with 2.6),

  and your program used 2.8 (no debug,Unicode,compiler with C++ ABI

102,wx containers,compatible with 2.6).

  Abort trap

  logout
It appears (from googling) to be a difference in the wx libraries on

the target system and the wx libraries on the build system.

Unfortunately, at this stage, I do not know what the OS X version is

on the target system.

The app was built using Python 2.5.4, (wxPython 2.8.11.0 or 2.8.4.2

??) on OS X 10.6.6.

Is there anyway to fix this with a py2app setting ??

Doesn't py2app copy all the libraries to the app bundle ??  I guess

that doesn’t guarantee that the libraries will load on any OS.

What about path settings ??

I presume others have solved this before.  Any suggestions ??

Many thanks,

Brendan.

I use wx.StandardPaths to help with this issue. Unfortunately, I don't
have a Mac, so I can't comment on your other issues. Hopefully someone
will jump in here. If py2app has a mailing list, you might want to
cross-post there.

···

On Jan 25, 3:22 am, "Brendan Simon (eTRIX)" <brendan.si...@etrix.com.au> wrote:

I have a wxPython app (for OS X) that is built with py2app. A user
recently reported the following error when trying to run the app.

Fatal Error: Mismatch between the program and library build versions
detected\.
The library used 2\.8 \(no debug,Unicode,compiler with C\+\+ ABI 1002,wx
containers,compatible with 2\.6\),
and your program used 2\.8 \(no debug,Unicode,compiler with C\+\+ ABI
102,wx containers,compatible with 2\.6\)\.
Abort trap
logout

It appears (from googling) to be a difference in the wx libraries on the
target system and the wx libraries on the build system.

Unfortunately, at this stage, I do not know what the OS X version is on
the target system.

The app was built using Python 2.5.4, (wxPython 2.8.11.0 or 2.8.4.2 ??)
on OS X 10.6.6.

Is there anyway to fix this with a py2app setting ??

Doesn't py2app copy all the libraries to the app bundle ?? I guess that
doesn't guarantee that the libraries will load on any OS.

What about path settings ??

-------------------
Mike Driscoll

Blog: http://blog.pythonlibrary.org

What about path settings ??

I use wx.StandardPaths to help with this issue. Unfortunately, I don't
have a Mac, so I can't comment on your other issues.

I think the OP was talking about messing with path setting to get the right wx loaded -- wx.StandardPaths won't help with that.

Hopefully someone
will jump in here. If py2app has a mailing list, you might want to
cross-post there.

It's been posted on the python-mac list, which is the right place.

By the way, my wxPython apps work great with py2app -- so this should be a solvable problem -- see the python-mac list for my suggestions.

-Chris

···

On 1/25/11 7:05 AM, Mike Driscoll wrote:

--
Christopher Barker, Ph.D.
Oceanographer

Emergency Response Division
NOAA/NOS/OR&R (206) 526-6959 voice
7600 Sand Point Way NE (206) 526-6329 fax
Seattle, WA 98115 (206) 526-6317 main reception

Chris.Barker@noaa.gov

I have a wxPython app (for OS X) that is built with py2app. A user
recently reported the following error when trying to run the app.

    Fatal Error: Mismatch between the program and library build versions
    detected.
    The library used 2.8 (no debug,Unicode,compiler with C++ ABI 1002,wx
    containers,compatible with 2.6),
    and your program used 2.8 (no debug,Unicode,compiler with C++ ABI
    102,wx containers,compatible with 2.6).
    Abort trap
    logout

It appears (from googling) to be a difference in the wx libraries on the
target system and the wx libraries on the build system.

Unfortunately, at this stage, I do not know what the OS X version is on
the target system.

The app was built using Python 2.5.4, (wxPython 2.8.11.0 or 2.8.4.2 ??)
on OS X 10.6.6.

Is your py2app up to date?

Is there anyway to fix this with a py2app setting ??

Doesn't py2app copy all the libraries to the app bundle ?? I guess that
doesn't guarantee that the libraries will load on any OS.

Check inside your app bundle and see what was copied there. If the wxPython extension modules are missing or if the wxWidgets library was not copied then you may need to force py2app to copy them into the bundle. If they are there then perhaps py2app is skipping the step where it tweaks the load paths in the Python extension modules to load the wx library from within the bundle instead of from the system. You can use otool -L to examine what libs (and paths to those libs) will be dynamically loaded by the extension modules, and you can use install_name_tool to change them if needed.

···

On 1/25/11 1:22 AM, Brendan Simon (eTRIX) wrote:

--
Robin Dunn
Software Craftsman