Strangely, it appears to find the correct numpy.

More strangely, I picked a random order of doing things and suddenly it all works.  I think what I ended up doing is this:

Following builds using default setting without changing anything except:

python 2.7
numpy 1.5.1 with the flag --fcompiler=gnu95
mpl from github, setting the flags as I have posted earlier

then set these flags:
export CFLAGS="-arch i386 -arch x86_64"
export FFLAGS="-m32 -m64"
export LDFLAGS="-Wall -undefined dynamic_lookup -bundle -arch i386 -arch x86_64 -framework Accelerate"

then build scipy 0.8.0 with --fcompiler=gnu95

Then it all worked.  Honestly, I don't understand why it should work because of this voodoo, but I am happily making figures now...

Also of note, supposedly scipy 0.8 has problems with python 2.7.  Version 0.9 should solve these problems (currently in beta).

Thanks for the help!


Uri Laserson
Graduate Student, Biomedical Engineering
Harvard-MIT Division of Health Sciences and Technology
M +1 917 742 8019

On Tue, Dec 14, 2010 at 17:03, Benjamin Root <> wrote:
On Mon, Dec 13, 2010 at 5:54 PM, Uri Laserson <> wrote:

Well, on my Linux system, when I get that error, it happens when I do
an update of numpy, but fail to rebuild mpl.  Here is the order how I
build things: numpy, scipy, matplotlib.  I would imagine ipython goes

That has been my order as well.  How can I track down why the import of numpy.core.multiarray is  causing the problem?  And why would it cause a problem only when MPL is being imported, but not if I import it manually?

Originally, I tried to build the GitHub trunk version of numpy, but then abandoned that.  Since MPL is saying that it was built against the 20000... ABI rather than the 10000... ABI, is it possible the MPL is finding some other version of numpy lying around?  However, I'm pretty sure I deleted everything from the git numpy build.  How could I pinpoint which numpy libraries are being linked against in the MPL build?



"is it possible the MPL is finding some other version of numpy lying around?"

Yes, this is really the only remaining explanation.  To find out which numpy is being used for the build process, I think if you save the output of the build process for mpl, I am fairly sure that that information is somewhere near the beginning of the build log.

Ben Root