Matplotlib Build Problem: Error C1083: Cannot open include file: 'ft2build.h'

61,605

Solution 1

Have you installed freetype properly? If you have, there should be a file named ft2build.h somewhere under the installation directory, and the directory where that file is found is the one that you should specify with -I. The string "GnuWin32" does not appear anywhere in the output of your build command, so it looks like you have not placed that directory in the correct include list.

Solution 2

This error comes about when building matplotlib on Ubuntu 10.10 also. The solution is to do:

sudo apt-get install python-dev libfreetype6-dev

Solution 3

Another solution for Mac OS X is to install Freetype with Homebrew.

brew install freetype

Solution 4

I was able to solve this on Windows by doing the following:

   set INCLUDE=%INCLUDE%;C:\tmp\msvcr90-x32
   set LIB=%LIB%;C:\tmp\msvcr90-x32
   pip.exe install matplotlib

The link libraries for Freetype on windows can be found here: http://www.lfd.uci.edu/~gohlke/pythonlibs/#matplotlib (from meawoppl's comment)

Just download the "matplotlib‑1.x‑windows‑link‑libraries.zip", and open the README from the zip.

Solution 5

This question comes up high in Google for this error, so like several others I'll ignore the fact that it's asking about Windows only.

On Debian 10 (Buster) I had to do:

sudo apt install libfreetype6-dev pkg-config

Note the pkg-config dependency; without it, the FreeType headers get installed, but matplotlib is unable to find them. It warns about this before spitting out pages of output, so it's easy to miss:

IMPORTANT WARNING:
    pkg-config is not installed.
    matplotlib may not be able to find some of its dependencies
Share:
61,605
Admin
Author by

Admin

Updated on March 23, 2020

Comments

  • Admin
    Admin over 4 years

    ft2build.h is located here:

    C:\Program Files\GnuWin32\include

    Initially, I made the same mistake as here:

    Fatal Error C1083: Cannot Open Include file: 'tiffio.h': No such file or directory VC++ 2008

    but since then, I've corrected that particular error (I've added the above directory to the "include" list, rather than the "executables" list), but I still get an error. The complete output is this:

    BUILDING MATPLOTLIB
                matplotlib: 0.98.5.2
                    python: 2.6.2 Stackless 3.1b3 060516 (release26-maint, Apr
                            14 2009, 21:19:36) [MSC v.1500 32 bit (Intel)]
                  platform: win32
           Windows version: (5, 1, 2600, 2, 'Service Pack 3')
    
    REQUIRED DEPENDENCIES
                     numpy: 1.3.0
                 freetype2: found, but unknown version (no pkg-config)
                            * WARNING: Could not find 'freetype2' headers in any
                            * of '.', '.\freetype2'.
    
    OPTIONAL BACKEND DEPENDENCIES
                    libpng: found, but unknown version (no pkg-config)
                            * Could not find 'libpng' headers in any of '.'
                   Tkinter: no
                            * No tk/win32 support for this python version yet
                  wxPython: 2.8.9.2
                            * WxAgg extension not required for wxPython >= 2.8
                      Gtk+: no
                            * Building for Gtk+ requires pygtk; you must be able
                            * to "import gtk" in your build/install environment
           Mac OS X native: no
                        Qt: no
                       Qt4: no
                     Cairo: no
    
    OPTIONAL DATE/TIMEZONE DEPENDENCIES
                  datetime: present, version unknown
                  dateutil: matplotlib will provide
                      pytz: matplotlib will provide
    
    OPTIONAL USETEX DEPENDENCIES
                    dvipng: no
               ghostscript: no
                     latex: no
                   pdftops: no
    
    [Edit setup.cfg to suppress the above messages]
    ============================================================================
    pymods ['pylab']
    packages ['matplotlib', 'matplotlib.backends', 'matplotlib.projections', 'mpl_to
    olkits', 'matplotlib.numerix', 'matplotlib.numerix.mlab', 'matplotlib.numerix.ma
    ', 'matplotlib.numerix.npyma', 'matplotlib.numerix.linear_algebra', 'matplotlib.
    numerix.random_array', 'matplotlib.numerix.fft', 'matplotlib.delaunay', 'pytz',
    'dateutil', 'dateutil/zoneinfo']
    running build
    running build_py
    copying lib\matplotlib\mpl-data\matplotlibrc -> build\lib.win32-2.6\matplotlib\m
    pl-data
    copying lib\matplotlib\mpl-data\matplotlib.conf -> build\lib.win32-2.6\matplotli
    b\mpl-data
    running build_ext
    building 'matplotlib.ft2font' extension
    C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe /c /nologo /Ox /MD /W
    3 /GS- /DNDEBUG -IC:\Python26\lib\site-packages\numpy\core\include -I. -IC:\Pyth
    on26\lib\site-packages\numpy\core\include\freetype2 -I.\freetype2 -IC:\Python26\
    include -IC:\Python26\include\Stackless -IC:\Python26\PC /Tpsrc/ft2font.cpp /Fob
    uild\temp.win32-2.6\Release\src/ft2font.obj
    ft2font.cpp
    C:\Program Files\Microsoft Visual Studio 9.0\VC\INCLUDE\xlocale(342) : warning C
    4530: C++ exception handler used, but unwind semantics are not enabled. Specify
    /EHsc
    c:\python26\lib\site-packages\matplotlib-0.98.5.2\src\ft2font.h(13) : fatal erro
    r C1083: Cannot open include file: 'ft2build.h': No such file or directory
    error: command '"C:\Program Files\Microsoft Visual Studio 9.0\VC\BIN\cl.exe"' fa
    iled with exit status 2
    

    I should mention that this is Python 2.6

  • Chris Lawlor
    Chris Lawlor about 13 years
    The OP is on windows, so probably not too helpful to him, but +1 for helping me sort this out on my machine.
  • meawoppl
    meawoppl about 11 years
    When on windows consider using pre-built binaries. This repository of unoffical binaries has been a lifesaver for me.
  • boileau
    boileau over 3 years
    On Ubuntu 20.4 I also needed the pkg-config package.
  • Dmitrii Rashchenko
    Dmitrii Rashchenko about 2 years
    Depending on python version you use, instead of python-dev something like python3-dev or python3.9-dev may be required.