From: Uri L. <las...@mi...> - 2010-12-13 21:46:05
|
Hi all, I am trying to install matplotlib on a MacMini Intel Core 2 Duo with a clean install of Mac OS X 10.6. I am using python 2.7 that I built from source using the homebrew package installer. I also installed numpy 1.5.1 from source, using the following environment variables: export MACOSX_DEPLOYMENT_TARGET=10.6 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" I also used gfortran 4.2.3 precompiled that I downloaded from http://r.research.att.com/tools/ NOTE: I previously performed this whole install process on a brand new MacBook Air, and it worked without a problem. I ran numpy.test() and got the following output: In [4]: numpy.test() Running unit tests for numpy NumPy version 1.5.1 NumPy is installed in /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/numpy Python version 2.7.1 (r271:86832, Dec 13 2010, 14:21:05) [GCC 4.2.1 (Apple Inc. build 5664)] nose version 0.11.4 [...snip...] Ran 3006 tests in 18.696s OK (KNOWNFAIL=4, SKIP=1) Out[4]: <nose.result.TextTestResult run=3006 errors=0 failures=0> Also, when I try to import numpy.core.multiarray, I get no errors. Finally, I cloned the latest GitHub MPL and set make.osx to be the following (note: changed pyversion, pngfamily, pngversion, deployment target, and the FFLAGS variable): # build mpl into a local install dir with # PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_install MPLVERSION=1.0rc1 PYVERSION=2.7 PYTHON=python${PYVERSION} ZLIBVERSION=1.2.3 PNGFAMILY=12 PNGVERSION=1.2.44 FREETYPEVERSION=2.3.11 MACOSX_DEPLOYMENT_TARGET=10.6 OSX_SDK_VER=10.6 ARCH_FLAGS="-arch i386 -arch x86_64" ## You shouldn't need to configure past this point PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig" CFLAGS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk" LDFLAGS="-arch i386 -arch x86_64 -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk" FFLAGS="-arch i386 -arch x86_64" The install seems to go fine. I can import matplotlib. But when I import matplotlib.pyplot, I get the following: In [2]: import matplotlib.pyplot --------------------------------------------------------------------------- RuntimeError Traceback (most recent call last) RuntimeError: module compiled against ABI version 2000000 but this version of numpy is 1000009 --------------------------------------------------------------------------- ImportError Traceback (most recent call last) /Users/laserson/<ipython console> in <module>() /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/pyplot.py in <module>() 21 from matplotlib.cbook import dedent, silent_list, is_string_like, is_numlike 22 from matplotlib import docstring ---> 23 from matplotlib.figure import Figure, figaspect 24 from matplotlib.backend_bases import FigureCanvasBase 25 from matplotlib.image import imread as _imread /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/figure.py in <module>() 14 import numpy as np 15 ---> 16 import artist 17 from artist import Artist, allow_rasterization 18 from axes import Axes, SubplotBase, subplot_class_factory /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/artist.py in <module>() 4 import matplotlib.cbook as cbook 5 from matplotlib import docstring, rcParams ----> 6 from transforms import Bbox, IdentityTransform, TransformedBbox, TransformedPath 7 from path import Path 8 /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/transforms.py in <module>() 32 import numpy as np 33 from numpy import ma ---> 34 from matplotlib._path import affine_transform 35 from numpy.linalg import inv 36 ImportError: numpy.core.multiarray failed to import It is strange because when I import numpy.core.multiarray, I have no problems. It also raises a RuntimeError, yelling about an ABI incompatibility. Does anyone know how to solve this problem? I was able to get this to work on another computer..strange that it fails now. Thanks! Uri ................................................................................... Uri Laserson Graduate Student, Biomedical Engineering Harvard-MIT Division of Health Sciences and Technology M +1 917 742 8019 las...@mi... |
From: Benjamin R. <ben...@ou...> - 2010-12-13 22:25:53
|
On Monday, December 13, 2010, Uri Laserson <las...@mi...> wrote: > Hi all, > I am trying to install matplotlib on a MacMini Intel Core 2 Duo with a clean install of Mac OS X 10.6. I am using python 2.7 that I built from source using the homebrew package installer. I also installed numpy 1.5.1 from source, using the following environment variables: > > > export MACOSX_DEPLOYMENT_TARGET=10.6export CFLAGS="-arch i386 -arch x86_64" > > export FFLAGS="-m32 -m64"export LDFLAGS="-Wall -undefined dynamic_lookup -bundle -arch i386 -arch x86_64 -framework Accelerate" > I also used gfortran 4.2.3 precompiled that I downloaded from http://r.research.att.com/tools/ > > > NOTE: I previously performed this whole install process on a brand new MacBook Air, and it worked without a problem. > I ran numpy.test() and got the following output: > > > In [4]: numpy.test()Running unit tests for numpyNumPy version 1.5.1NumPy is installed in /usr/local/Cellar/python/2.7.1/lib/python2.7/site-packages/numpyPython version 2.7.1 (r271:86832, Dec 13 2010, 14:21:05) [GCC 4.2.1 (Apple Inc. build 5664)] > > nose version 0.11.4 > [...snip...] > Ran 3006 tests in 18.696s > OK (KNOWNFAIL=4, SKIP=1)Out[4]: <nose.result.TextTestResult run=3006 errors=0 failures=0> > > > Also, when I try to import numpy.core.multiarray, I get no errors. > Finally, I cloned the latest GitHub MPL and set make.osx to be the following (note: changed pyversion, pngfamily, pngversion, deployment target, and the FFLAGS variable): > > > # build mpl into a local install dir with# PREFIX=/Users/jdhunter/dev make -f make.osx fetch deps mpl_installMPLVERSION=1.0rc1PYVERSION=2.7PYTHON=python${PYVERSION} > > ZLIBVERSION=1.2.3PNGFAMILY=12PNGVERSION=1.2.44FREETYPEVERSION=2.3.11MACOSX_DEPLOYMENT_TARGET=10.6OSX_SDK_VER=10.6ARCH_FLAGS="-arch i386 -arch x86_64" > > > ## You shouldn't need to configure past this point > PKG_CONFIG_PATH="${PREFIX}/lib/pkgconfig"CFLAGS="-arch i386 -arch x86_64 -I${PREFIX}/include -I${PREFIX}/include/freetype2 -isysroot /Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk" > > LDFLAGS="-arch i386 -arch x86_64 -L${PREFIX}/lib -syslibroot,/Developer/SDKs/MacOSX${OSX_SDK_VER}.sdk"FFLAGS="-arch i386 -arch x86_64" > The install seems to go fine. I can import matplotlib. But when I import matplotlib.pyplot, I get the following: > > > In [2]: import matplotlib.pyplot---------------------------------------------------------------------------RuntimeError Traceback (most recent call last) > > > > RuntimeError: module compiled against ABI version 2000000 but this version of numpy is 1000009--------------------------------------------------------------------------- > > ImportError Traceback (most recent call last) > /Users/laserson/<ipython console> in <module>() > /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/pyplot.py in <module>() > > 21 from matplotlib.cbook import dedent, silent_list, is_string_like, is_numlike 22 from matplotlib import docstring---> 23 from matplotlib.figure import Figure, figaspect > 24 from matplotlib.backend_bases import FigureCanvasBase > 25 from matplotlib.image import imread as _imread > /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/figure.py in <module>() 14 import numpy as np > > 15 ---> 16 import artist 17 from artist import Artist, allow_rasterization 18 from axes import Axes, SubplotBase, subplot_class_factory > /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/artist.py in <module>() > > 4 import matplotlib.cbook as cbook 5 from matplotlib import docstring, rcParams----> 6 from transforms import Bbox, IdentityTransform, TransformedBbox, TransformedPath 7 from path import Path > > 8 > /Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/transforms.py in <module>() 32 import numpy as np 33 from numpy import ma > > ---> 34 from matplotlib._path import affine_transform 35 from numpy.linalg import inv 36 > ImportError: numpy.core.multiarray failed to import > > > It is strange because when I import numpy.core.multiarray, I have no problems. It also raises a RuntimeError, yelling about an ABI incompatibility. > Does anyone know how to solve this problem? I was able to get this to work on another computer..strange that it fails now. > > > Thanks!Uri > ...................................................................................Uri Laserson > Graduate Student, Biomedical Engineering > Harvard-MIT Division of Health Sciences and Technology > M +1 917 742 8019 > las...@mi... > > Can you try importing pyplot from a regular python prompt? If that works, then the issue is with ipython messing up the import process of mpl. Ben Root |
From: Uri L. <las...@mi...> - 2010-12-13 22:40:02
|
> > > Can you try importing pyplot from a regular python prompt? If that > works, then the issue is with ipython messing up the import process of > mpl. > > I get exactly the same problem... laserson@hobbes:~$ python Python 2.7.1 (r271:86832, Dec 13 2010, 14:21:05) [GCC 4.2.1 (Apple Inc. build 5664)] on darwin Type "help", "copyright", "credits" or "license" for more information. >>> import matplotlib >>> import matplotlib.pyplot RuntimeError: module compiled against ABI version 2000000 but this version of numpy is 1000009 Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/pyplot.py", line 23, in <module> from matplotlib.figure import Figure, figaspect File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/figure.py", line 16, in <module> import artist File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/artist.py", line 6, in <module> from transforms import Bbox, IdentityTransform, TransformedBbox, TransformedPath File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/transforms.py", line 34, in <module> from matplotlib._path import affine_transform ImportError: numpy.core.multiarray failed to import >>> |
From: Benjamin R. <ben...@ou...> - 2010-12-13 23:37:24
|
On Monday, December 13, 2010, Uri Laserson <las...@mi...> wrote: > > Can you try importing pyplot from a regular python prompt? If that > works, then the issue is with ipython messing up the import process of > mpl. > > I get exactly the same problem... > > > laserson@hobbes:~$ pythonPython 2.7.1 (r271:86832, Dec 13 2010, 14:21:05) [GCC 4.2.1 (Apple Inc. build 5664)] on darwinType "help", "copyright", "credits" or "license" for more information. > >>>> import matplotlib>>> import matplotlib.pyplotRuntimeError: module compiled against ABI version 2000000 but this version of numpy is 1000009Traceback (most recent call last): > > File "<stdin>", line 1, in <module> File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/pyplot.py", line 23, in <module> from matplotlib.figure import Figure, figaspect > > File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/figure.py", line 16, in <module> import artist File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/artist.py", line 6, in <module> > > from transforms import Bbox, IdentityTransform, TransformedBbox, TransformedPath File "/Users/laserson/matplotlib/lib/python2.7/site-packages/matplotlib/transforms.py", line 34, in <module> > > from matplotlib._path import affine_transformImportError: numpy.core.multiarray failed to import>>> > 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 last. Ben Root |
From: Uri L. <las...@mi...> - 2010-12-13 23:57:43
|
> > > 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 > last. > > 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? Uri |
From: Benjamin R. <ben...@ou...> - 2010-12-14 22:04:26
|
On Mon, Dec 13, 2010 at 5:54 PM, Uri Laserson <las...@mi...> 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 >> last. >> >> > 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? > > Uri > Uri, "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 |
From: Uri L. <las...@mi...> - 2010-12-14 22:16:31
|
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: MACOSX_DEPLOYMENT_TARGET=10.6 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 MACOSX_DEPLOYMENT_TARGET=10.6 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 ................................................................................... Uri Laserson Graduate Student, Biomedical Engineering Harvard-MIT Division of Health Sciences and Technology M +1 917 742 8019 las...@mi... On Tue, Dec 14, 2010 at 17:03, Benjamin Root <ben...@ou...> wrote: > On Mon, Dec 13, 2010 at 5:54 PM, Uri Laserson <las...@mi...> 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 >>> last. >>> >>> >> 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? >> >> Uri >> > > Uri, > > > "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 > |