51

When I try to upgrade my matplotlib using pip, it outputs:

Downloading/unpacking matplotlib from https://pypi.python.org/packages/source/m/matplotlib/matplotlib-1.4.0.tar.gz#md5=1daf7f2123d94745feac1a30b210940c
  Downloading matplotlib-1.4.0.tar.gz (51.2MB): 51.2MB downloaded
  Running setup.py (path:/tmp/pip_build_root/matplotlib/setup.py) egg_info for package matplotlib
    ============================================================================
    Edit setup.cfg to change the build options

    BUILDING MATPLOTLIB
                matplotlib: yes [1.4.0]
                    python: yes [2.7.6 (default, Mar 22 2014, 22:59:38)  [GCC
                            4.8.2]]
                  platform: yes [linux2]

    REQUIRED DEPENDENCIES AND EXTENSIONS
                     numpy: yes [version 1.8.2]
                       six: yes [using six version 1.7.3]
                  dateutil: yes [using dateutil version 2.2]
                   tornado: yes [using tornado version 4.0.1]
                 pyparsing: yes [using pyparsing version 2.0.2]
                     pycxx: yes [Couldn't import.  Using local copy.]
                    libagg: yes [pkg-config information for 'libagg' could not
                            be found. Using local copy.]
    Traceback (most recent call last):
      File "<string>", line 17, in <module>
      File "/tmp/pip_build_root/matplotlib/setup.py", line 154, in <module>
        result = package.check()
      File "setupext.py", line 940, in check
        if 'No such file or directory\ngrep:' in version:
    TypeError: argument of type 'NoneType' is not iterable
    Complete output from command python setup.py egg_info:
    ============================================================================

Edit setup.cfg to change the build options



BUILDING MATPLOTLIB

            matplotlib: yes [1.4.0]

                python: yes [2.7.6 (default, Mar 22 2014, 22:59:38)  [GCC

                        4.8.2]]

              platform: yes [linux2]



REQUIRED DEPENDENCIES AND EXTENSIONS

                 numpy: yes [version 1.8.2]

                   six: yes [using six version 1.7.3]

              dateutil: yes [using dateutil version 2.2]

               tornado: yes [using tornado version 4.0.1]

             pyparsing: yes [using pyparsing version 2.0.2]

                 pycxx: yes [Couldn't import.  Using local copy.]

                libagg: yes [pkg-config information for 'libagg' could not

                        be found. Using local copy.]

Traceback (most recent call last):

  File "<string>", line 17, in <module>

  File "/tmp/pip_build_root/matplotlib/setup.py", line 154, in <module>

    result = package.check()

  File "setupext.py", line 940, in check

    if 'No such file or directory\ngrep:' in version:

TypeError: argument of type 'NoneType' is not iterable

----------------------------------------
Cleaning up...
Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/matplotlib
Storing debug log for failure in /home/username/.pip/pip.log

In the tail of the log it says:

Exception information:
Traceback (most recent call last):
  File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/basecommand.py", line 122, in main
    status = self.run(options, args)
  File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/commands/install.py", line 278, in run
    requirement_set.prepare_files(finder, force_root_egg_info=self.bundle, bundle=self.bundle)
  File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 1229, in prepare_files
    req_to_install.run_egg_info()
  File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/req.py", line 325, in run_egg_info
    command_desc='python setup.py egg_info')
  File "/usr/local/lib/python2.7/dist-packages/pip-1.5.6-py2.7.egg/pip/util.py", line 697, in call_subprocess
    % (command_desc, proc.returncode, cwd))
InstallationError: Command python setup.py egg_info failed with error code 1 in /tmp/pip_build_root/matplotlib

Why did it fail? Many thanks!

Anton Savin
  • 40,838
  • 8
  • 54
  • 90
astroboylrx
  • 881
  • 1
  • 8
  • 18

9 Answers9

77

This is a known bug that has been fixed (https://github.com/matplotlib/matplotlib/pull/3414) on master.

The bug is in the handling of searching for a freetype installation. If you install the Linux package freetype-dev, you will avoid this bug and be able to compile matplotlib.

sudo apt-get install libfreetype6-dev
Vanuan
  • 31,770
  • 10
  • 98
  • 102
tacaswell
  • 84,579
  • 22
  • 210
  • 199
69

On Ubuntu 14 server, you also need to install libxft-dev

sudo apt-get install libfreetype6-dev libxft-dev
  • 2
    It seems very difficult to make out what needs to be done. However, it looks like on Ubuntu 14 sudo apt-get install libfreetype6-dev libxft-dev followed by sudo pip install matplotlib WORKS !! – Somum Feb 10 '16 at 04:52
  • This is also required for Bash on Windows 10. – Ninjakannon Oct 29 '16 at 14:55
12

I had the same issues trying to install matplotlib on Python 3 using pip3, and it seems that this problem is related to a bare-bones installation of Python 3, and doing a:

sudo apt-get build-dep matplotlib

followed by

sudo pip3 install matplotlib 

is probably a better solution than selectively installing only the libraries related to matplotlib.

tchakravarty
  • 10,736
  • 12
  • 72
  • 116
3

Since mac doesn't have apt-get you, on OSX you may need to do:

brew install freetype

then you can run:

pip install matplotlib
Chase Roberts
  • 9,082
  • 13
  • 73
  • 131
1

Found this page while looking answer for fedora 24.

RPM solution is:

dnf install freetype-devel

Artem Gromov
  • 124
  • 4
1

If you re running Ubuntu server 14.04 u should add this font dependency

sudo apt-get install libxft-dev

Source

0

I was trying too update directly using sudo pip but changes are not saved in last. So i first use update cmd in terminal:

sudo apt-get update

then i used sudo install:

sudo apt-get install libffi-dev

Finally its installed by doing this method.

Rochan
  • 1,412
  • 1
  • 14
  • 17
  • 3
    While this code snippet may solve the question, [including an explanation](//meta.stackexchange.com/questions/114762/explaining-entirely-code-based-answers) really helps to improve the quality of your post. Remember that you are answering the question for readers in the future, and those people might not know the reasons for your code suggestion. Please also try not to crowd your code with explanatory comments, this reduces the readability of both the code and the explanations! – kayess Dec 12 '16 at 11:17
0

For those on Fedora 25 hitting this thread, I needed these two packages to make it work:

sudo dnf install freetype-devel gcc-c++
Jean Spector
  • 916
  • 9
  • 9
0

This worked for me:

python -m pip install -U pip setuptools
python -m pip install matplotlib

For more details, follow : https://matplotlib.org/2.0.0/users/installing.html

Saurabh Singh
  • 1,241
  • 13
  • 11