I was installing matplotlib to use basemap today when I had to install a lot of stuff to make it work. After installing matplotlib and be able to import it I installed basemap but I can't import basemap because of this error:
from mpl_toolkits.basemap import Basemap
Traceback (most recent call last):
File "", line 1, in
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/mpl_toolkits/basemap/init.py", line 36, in
from matplotlib.collections import LineCollection
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/collections.py", line 22, in
import matplotlib.backend_bases as backend_bases
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/backend_bases.py", line 38, in
import matplotlib.widgets as widgets
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/widgets.py", line 16, in
from lines import Line2D
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/lines.py", line 23, in
from matplotlib.font_manager import FontProperties
File "/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/font_manager.py", line 52, in
from matplotlib import ft2font
ImportError: dlopen(/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/ft2font.so, 2): Symbol not found: _FT_Attach_File
Referenced from: /usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/ft2font.so
Expected in: dynamic lookup
So when I tried to import ft2font in python by:
from matplotlib import ft2font
I got this error:
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: dlopen(/usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/ft2font.so, 2): Symbol not found: _FT_Attach_File
Referenced from: /usr/local/Cellar/python/2.7.2/lib/python2.7/site-packages/matplotlib/ft2font.so
Expected in: dynamic lookup
Any idea what to do?
I'm using Mac OSX 10.6 and python 2.7.2 installed by homebrew.
Best Answer
I ran into the same issue. Even after running
make.osx
, it still complained about_FT_Attach_File
being undefined when I importedft2font
from matplotlib. Here's how I tracked down the problem. Hopefully, it will help someone else.Running
otool -L ft2font.so
yielded:Note the absence of any mention of libfreetype! How is
ft2font.so
supposed to locate the symbol if it isn't linked against it?My next step was to capture the commands used during the build:
Searching this yielded the command that was used to compile the offending python module. I changed the value of the output file to be one in my local directory and ran it:
Bingo! Problem found. I know I have both macports and homebrew installed. Apparently, one of them has a version of
libfreetype
in/opt/local/lib
that isn't compiled for 64-bit.I reran the command with
"-L /opt/local/lib"
removed which worked without a warning. Copying the resultingft2font.so
into my existing matplotlib installation now allows me to successfully importft2font
from matplotlib.