ubuntu 14.04,pip无法升级matplotllib

当我尝试使用pip升级我的matplotlib时,它输出:

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 

在日志的尾巴它说:

 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 

为什么失败? 非常感谢!

这是一个已知的错误,已经修复( https://github.com/matplotlib/matplotlib/pull/3414 )在主。

该错误是在处理searchfreetype安装。 如果你安装了Linux软件包freetype-dev,你将会避免这个bug,并且能够编译matplotlib

 sudo apt-get install libfreetype6-dev 

在Ubuntu 14服务器上,您还需要安装libxft-dev

 sudo apt-get install libfreetype6-dev libxft-dev 

我有同样的问题试图在Python 3上使用pip3安装matplotlib ,而且这个问题似乎与Python 3的一个简单的安装有关,并且执行:

 sudo apt-get build-dep matplotlib 

其次是

 sudo pip3 install matplotlib 

可能是一个更好的解决scheme,而不是有select地只安装与matplotlib相关的库。

由于在OSX上,你可能需要这样做:

 brew install freetype 

那么你可以运行:

 pip install matplotlib 

find这个页面,同时寻找fedora 24的答案。

RPM解决scheme是:

dnf install freetype-devel

如果你重新运行Ubuntu服务器14.04你应该添加这种字体依赖

 sudo apt-get install libxft-dev 

资源

我正在尝试使用sudo pip直接更新,但是最后没有保存更改。 所以我首先在terminal中使用update cmd:

 sudo apt-get update 

然后我用sudo安装:

 sudo apt-get install libffi-dev 

最后通过这个方法来安装它。

对于那些在Fedora 25上打这个线程,我需要这两个包来使它工作:

 sudo dnf install freetype-devel gcc-c++