即使在重新安装matplotlib,libpng和brew之后,import pylab也会失败

时间:2016-11-04 00:15:17

标签: python matplotlib libpng

最近升级到OSX Sierra(10.12.1),升级了一些软件包(不记得是什么),现在发生这种情况(参见错误消息)。我尝试重新安装libpngbrew + libpng,成功关联libpng,重新安装matplotlib,我仍然遇到此错误。任何想法接下来要尝试什么?

matplotlib版本:1.5.3

python版本:

>>> print (sys.version)
2.7.12 |Anaconda 2.2.0 (x86_64)| (default, Jul  2 2016, 17:43:17) 
[GCC 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.11.00)]

完整的错误消息:

In [1]: import pylab

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-1-0c66bb86b884> in <module>()
----> 1 import pylab

/Users/lweiss/anaconda/lib/python2.7/site-packages/pylab.py in <module>()
----> 1 from matplotlib.pylab import *
  2 import matplotlib.pylab
  3 __doc__ = matplotlib.pylab.__doc__

/Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/pylab.py in <module>()
229 # make mpl.finance module available for backwards compatability, in case folks
230 # using pylab interface depended on not having to import it
--> 231 import matplotlib.finance
232 
233 from matplotlib.dates import date2num, num2date,\

/Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/finance.py in <module>()
 25 from matplotlib.dates import date2num
 26 from matplotlib.cbook import iterable, mkdirs
---> 27 from matplotlib.collections import LineCollection, PolyCollection
 28 from matplotlib.colors import colorConverter
 29 from matplotlib.lines import Line2D, TICKLEFT, TICKRIGHT

/Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/collections.py in <module>()
 25 import matplotlib.artist as artist
 26 from matplotlib.artist import allow_rasterization
---> 27 import matplotlib.backend_bases as backend_bases
 28 import matplotlib.path as mpath
 29 from matplotlib import _path

/Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/backend_bases.py in <module>()
 60 
 61 import matplotlib.tight_bbox as tight_bbox
---> 62 import matplotlib.textpath as textpath
 63 from matplotlib.path import Path
 64 from matplotlib.cbook import mplDeprecation, warn_deprecated

/Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/textpath.py in <module>()
 16 from matplotlib.ft2font import FT2Font, KERNING_DEFAULT, LOAD_NO_HINTING
 17 from matplotlib.ft2font import LOAD_TARGET_LIGHT
---> 18 from matplotlib.mathtext import MathTextParser
 19 import matplotlib.dviread as dviread
 20 from matplotlib.font_manager import FontProperties

/Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/mathtext.py in <module>()
 58 
 59 import matplotlib.colors as mcolors
---> 60 import matplotlib._png as _png
 61 ####################
 62 

ImportError: dlopen(/Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/_png.so, 2): Library not loaded: @rpath/libpng16.16.dylib
  Referenced from: /Users/lweiss/anaconda/lib/python2.7/site-packages/matplotlib/_png.so
  Reason: Incompatible library version: _png.so requires version 39.0.0 or later, but libpng16.16.dylib provides version 34.0.0

2 个答案:

答案 0 :(得分:1)

此问题也出现在OS X 10.11上,升级libpng并不能解决问题。我matplotlib的版本是1.5.3。我不得不恢复到旧版本:

pip install matplotlib==1.4

并且工作正常。

答案 1 :(得分:0)

您应该尝试的第一件事是升级自制软件安装的libpng版本:

brew update && brew upgrade libpng

如果这不起作用,您应该尝试完全卸载libpng,然后重新安装

$ sudo brew uninstall libpng
$ sudo rm '/usr/local/bin/libpng-config'
$ for i in `brew link --overwrite --dry-run libpng`; do sudo rm $i; done
$ sudo brew install libpng