Install MatPlotLib 1.2.x on OS X Lion 10.7.4 and Python 3.2.2

A few days ago I asked a question about installing numpy on the same system. Fortunately, I managed to solve this myself, but unfortunately, I am now stuck trying to install matplotlib.

First of all, I tried the current distributed version, but I had no luck, so I decided to download the git repository and try it. I'm so far away:

  • modified the make.osx file so that it works in Python 3:
    • import urllib import urllib.request
    • urllib.urlretrieve()urllib.request.urlretrieve()

Even after that, I still had a problem with this without finding freetype2 headers. I googled around and found that I could solve this by editing the line in setupext.py :

  • 'darwin' : [],'darwin' : ['/usr/local'],

However, I still get an error when using the make.osx file. This is how I call the file from the terminal:

  • sudo make -f make.osx PREFIX=/usr/local PYVERSION=3.2 fetch deps mpl_build mpl_install

I understand that matplotlib is not officially supported in Python 3, but I thought that maybe someone at least managed to get it to compile / install?

Any help would be greatly appreciated

Adam.

I have included the error I get below:

 basedirlist is: ['/usr/local'] ============================================================================ BUILDING MATPLOTLIB matplotlib: 1.2.x python: 3.2.2 (v3.2.2:137e45f15c0b, Sep 3 2011, 17:28:59) [GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] platform: darwin REQUIRED DEPENDENCIES numpy: 1.6.2rc1 freetype2: found, but unknown version (no pkg-config) OPTIONAL BACKEND DEPENDENCIES libpng: found, but unknown version (no pkg-config) Tkinter: Tkinter: version not identified, Tk: 8.5, Tcl: 8.5 Gtk+: no * Building for Gtk+ requires pygtk; you must be able * to "import gtk" in your build/install environment Mac OS X native: yes Qt: no Qt4: Qt: 4.7.4, PyQt4: 4.8.6 PySide: no Cairo: no OPTIONAL DATE/TIMEZONE DEPENDENCIES datetime: present, version unknown dateutil: matplotlib will provide pytz: matplotlib will provide adding pytz OPTIONAL USETEX DEPENDENCIES dvipng: no ghostscript: /bin/sh: gs: command not found latex: no [Edit setup.cfg to suppress the above messages] ============================================================================ pymods ['pylab'] packages ['matplotlib', 'matplotlib.backends', 'matplotlib.backends.qt4_editor', 'matplotlib.projections', 'matplotlib.testing', 'matplotlib.testing.jpl_units', 'matplotlib.tests', 'mpl_toolkits', 'mpl_toolkits.mplot3d', 'mpl_toolkits.axes_grid', 'mpl_toolkits.axes_grid1', 'mpl_toolkits.axisartist', 'matplotlib.sphinxext', 'matplotlib.tri', 'matplotlib.delaunay', 'pytz', 'dateutil', 'dateutil.zoneinfo'] running build running build_py copying lib/matplotlib/mpl-data/matplotlibrc -> build/lib.macosx-10.6-intel-3.2/matplotlib/mpl-data copying lib/matplotlib/mpl-data/matplotlib.conf -> build/lib.macosx-10.6-intel-3.2/matplotlib/mpl-data running build_ext building 'matplotlib.ft2font' extension gcc-4.2 -DNDEBUG -g -O3 -arch i386 -arch x86_64 -I/usr/local/include -I/usr/local/include/freetype2 -isysroot /Developer/SDKs/MacOSX10.6.sdk -DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -DPYCXX_PYTHON_2TO3=1 -I/usr/local/include -I/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/numpy/core/include -I/usr/local/include -I. -I/usr/local/include/freetype2 -I/Library/Frameworks/Python.framework/Versions/3.2/lib/python3.2/site-packages/numpy/core/include/freetype2 -I/usr/local/include/freetype2 -I./freetype2 -I/Library/Frameworks/Python.framework/Versions/3.2/include/python3.2m -c src/ft2font.cpp -o build/temp.macosx-10.6-intel-3.2/src/ft2font.o In file included from /Library/Frameworks/Python.framework/Versions/3.2/include/python3.2m/bytearrayobject.h:9, from /Library/Frameworks/Python.framework/Versions/3.2/include/python3.2m/Python.h:73, from ./CXX/WrapPython.h:58, from ./CXX/Extensions.hxx:37, from src/ft2font.h:6, from src/ft2font.cpp:3: /Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory In file included from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/iosfwd:45, from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_algobase.h:70, from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/char_traits.h:46, from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/string:47, from ./CXX/Python3/Exception.hxx:47, from ./CXX/Python3/Objects.hxx:45, from ./CXX/Python3/Extensions.hxx:52, from ./CXX/Extensions.hxx:42, from src/ft2font.h:6, from src/ft2font.cpp:3: /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin11/bits/c++locale.h: In function 'int std::__convert_from_v(int* const&, char*, int, const char*, ...)': /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin11/bits/c++locale.h:77: error: 'va_start' was not declared in this scope /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin11/bits/c++locale.h:85: error: 'va_end' was not declared in this scope In file included from /Library/Frameworks/Python.framework/Versions/3.2/include/python3.2m/bytearrayobject.h:9, from /Library/Frameworks/Python.framework/Versions/3.2/include/python3.2m/Python.h:73, from ./CXX/WrapPython.h:58, from ./CXX/Extensions.hxx:37, from src/ft2font.h:6, from src/ft2font.cpp:3: /Developer/SDKs/MacOSX10.6.sdk/usr/include/stdarg.h:4:25: error: stdarg.h: No such file or directory In file included from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/iosfwd:45, from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/stl_algobase.h:70, from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/bits/char_traits.h:46, from /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/string:47, from ./CXX/Python3/Exception.hxx:47, from ./CXX/Python3/Objects.hxx:45, from ./CXX/Python3/Extensions.hxx:52, from ./CXX/Extensions.hxx:42, from src/ft2font.h:6, from src/ft2font.cpp:3: /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin11/x86_64/bits/c++locale.h: In function 'int std::__convert_from_v(int* const&, char*, int, const char*, ...)': /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin11/x86_64/bits/c++locale.h:77: error: 'va_start' was not declared in this scope /Developer/SDKs/MacOSX10.6.sdk/usr/include/c++/4.2.1/i686-apple-darwin11/x86_64/bits/c++locale.h:85: error: 'va_end' was not declared in this scope lipo: can't figure out the architecture type of: /var/tmp//ccafJH1l.out error: command 'gcc-4.2' failed with exit status 1 make: *** [mpl_build] Error 1 
+1
source share
1 answer

Ok ... I think I managed to install matplotlib to install ...

  • First of all you need to install numpy . I have instructions for this in another post: install numpy

  • Now open Terminal and clone the git repository for matplotlib (assuming you have git installed):

    • git clone git://github.com/matplotlib/matplotlib.git (this may take some time)
  • Once the clone is complete, open your user folder in Finder

  • In your user folder, open the matplotlib directory

  • A file named `make.osx 'is opened using TextEdit (or similar)

  • Change the following lines:

    • MACOSX_DEPLOYMENT_TARGET=10.6
    • OSX_SDK_VER=10.6

    To:

    • MACOSX_DEPLOYMENT_TARGET=10.7
    • OSX_SDK_VER=10.7
  • Change the following lines:

    • ${PYTHON} -c 'import urllib; urllib.urlretrieve("${ZLIBURL}", "${ZLIBFILE}")' &&\ ${PYTHON} -c 'import urllib; urllib.urlretrieve("${PNGURL}", "${PNGFILE}")' &&\ ${PYTHON} -c 'import urllib; urllib.urlretrieve("${FREETYPEURL}", "${FREETYPEFILE}")'

    To:

    • ${PYTHON} -c 'import urllib.request; urllib.request.urlretrieve("${ZLIBURL}", "${ZLIBFILE}")' &&\ ${PYTHON} -c 'import urllib.request; urllib.request.urlretrieve("${PNGURL}", "${PNGFILE}")' &&\ ${PYTHON} -c 'import urllib.request; urllib.request.urlretrieve("${FREETYPEURL}", "${FREETYPEFILE}")'
  • Save changes

  • Open setupext.py in standby mode

  • Find the line 'darwin' : [], and change it to 'darwin' : ['/usr/local'],

  • Save file

  • Open Terminal and enter the following:

    • sudo make -f make.osx PREFIX=/usr/local PYVERSION=3.2 fetch deps mpl_build mpl_install
  • After a while, matplotlib should be installed in the following directory:

    • /usr/local/lib/Python3.2/site-packages/
  • Open the above directory, as well as the following directory:

    • /Library/Python/3.2/site-packages/
  • Copy / move the following directories from /usr/local/lib/Python3.2/site-packages/ to /Library/Python/3.2/site-packages/ :

    • dateutil
    • matplotlib
    • mpl_toolkits
  • matplotlib must be installed

  • If you open idle and enter import matplotlib , it should not return an error

  • I tried matplotlib/examples/user_interfaces/embedding_in_qt4_wtoolbar.py file and it seems to work fine

Hope someone finds this helpful!

Thanks again for your help,

Adam.

+7
source

Source: https://habr.com/ru/post/915533/


All Articles