ft2font error on OSX 10.6 using py2app

Hi,

I’m creating a stand alone program on my mac with OSX 10.4 and it seems to work great on it. However, if I transfer my program to a snow leopard (10.6) mac, I get the error:

  File "/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/__boot__.py", line 158, in <module>
   _run('RAW.py')
  File "/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/__boot__.py", line 134, in _run
    execfile(path, globals(), globals())
  File "/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/RAW.py", line 23, in <module>
    from pylab import setp
  File "pylab.pyc", line 1, in <module>
  File "/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/pylab.py", line 206, in <module>
    from matplotlib import mpl  # pulls in most modules
  File "/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/mpl.py", line 2, in <module>
    from matplotlib import axis
  File "/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/axis.py", line 10, in <module>
    import matplotlib.font_manager as font_manager
  File "/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/font_manager.py", line 52, in <module>
    from matplotlib import ft2font
ImportError
: dlopen(/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/ft2font.so, 2): Symbol not found: _FT_Load_Glyph
  Referenced from: /Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/ft2font.so
 Expected in: dynamic lookup

A search on it came up with someone having the same problem (http://www.mail-archive.com/matplotlib-users@lists.sourceforge.net/msg14252.html), but the cause doesn’t seem to be exactly the same since as my ft2font.so is linked correctly against /usr/lib/libgcc_s.1.dylib ?

heres the otool info:

/opt/local/lib/libfreetype.6.dylib (compatibility version 11.0.0, current version 11.0.0)
/opt/local/lib/libz.1.dylib (compatibility version 1.0.0, current version 1.2.4)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 88.3.3)
/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 18.0.0)
/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices (compatibility version 1.0.0, current version 22.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0)
/usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version 47.1.0)

I installed all packages and python 2.6 using Macports. Does anyone see the problem here?

Soren

2010/7/20 Søren Nielsen <soren.skou.nielsen@...287...>:

Hi,

I'm creating a stand alone program on my mac with OSX 10.4 and it seems to
work great on it. However, if I transfer my program to a snow leopard (10.6)
mac, I get the error:

dlopen(/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/ft2font.so,
2): Symbol not found: _FT_Load_Glyph
Referenced from:
/Volumes/KINGSTON/Mac/RAW.app/Contents/Resources/lib/python2.6/matplotlib/ft2font.so
Expected in: dynamic lookup

This looks to me like a compiler issue, but I'm not 100% sure either.
My guess is that your /opt/local/lib/libfreetype.6.dylib is compiled
for 10.6, i.e., using gcc-4.2, but your matplotlib files shipped with
your .app are compiled with gcc-4.0, as usual on 10.4. I don't know
why py2app doesn't pick up the files in /opt to ship it with your app,
I mean, noone can expect other users to have MacPorts installed when
they run your app. Maybe it's also some precedence issue, but I'm
neither a MacPorts nor a py2app expert :frowning:

It's good that you provide directly the otool info:

/opt/local/lib/libfreetype.6.dylib (compatibility version 11.0.0, current
version 11.0.0)

I guess the following indents/non-indents are unintentional and are
without meaning.

    /opt/local/lib/libz\.1\.dylib \(compatibility version 1\.0\.0, current

version 1.2.4)
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current
version 7.4.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current
version 88.3.3)

/System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices
(compatibility version 1.0.0, current version 18.0.0)

/System/Library/Frameworks/ApplicationServices.framework/Versions/A/ApplicationServices
(compatibility version 1.0.0, current version 22.0.0)
/usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current
version 1.0.0)
/usr/lib/libmx.A.dylib (compatibility version 1.0.0, current version
47.1.0)

hth so far,
Friedrich