【问题标题】:matplotlib says it needs libpng15, but I have libpng16matplotlib 说它需要 libpng15,但我有 libpng16
【发布时间】:2014-04-16 04:26:50
【问题描述】:

问题可能是配置问题,因为在 Mac 上正确安装似乎很棘手。我正在运行 Mavericks 和 matplotlib 1.4.x,但是当我打开 Python 2.7.5 shell 和 import pylib 时,我收到此错误:

>>> import pylab

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/pylab.py", line 1, in <module>
    from matplotlib.pylab import *
  File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/pylab.py", line 230, in <module>
    import matplotlib.finance
  File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/finance.py", line 38, in <module>
    from matplotlib.collections import LineCollection, PolyCollection
  File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/collections.py", line 27, in <module>
    import matplotlib.backend_bases as backend_bases
  File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/backend_bases.py", line 55, in <module>
    import matplotlib.textpath as textpath
  File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/textpath.py", line 22, in <module>
    from matplotlib.mathtext import MathTextParser
  File "/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/mathtext.py", line 64, in <module>
    import matplotlib._png as _png
ImportError: dlopen(/Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/_png.so, 2): Library not loaded: /usr/local/lib/libpng15.15.dylib
  Referenced from: /Library/Python/2.7/site-packages/matplotlib-1.4.x-py2.7-macosx-10.9-intel.egg/matplotlib/_png.so
  Reason: image not found

我安装了libpng16,但没有安装libpng15

【问题讨论】:

  • 我面临同样的问题,我安装了 libpng16,但 matplotlib 要求使用 libpng12,该怎么办。

标签: python macos matplotlib


【解决方案1】:

我在 _png.so 中看到了对 libpng15 的硬编码引用。
卸载和安装 matplotlib 为我解决了这个问题。

【讨论】:

    【解决方案2】:

    你总是可以通过生成这样的软链接来嘲笑它

    sudo ln -s /opt/X11/lib/libpng.dylib /usr/local/lib/libpng15.15.dylib
    

    不是更清洁的解决方案,但我不明白为什么 matplotlib 固执地要求专门针对 libpng15 而不是任何 15 或更大。

    【讨论】:

    • 令人惊讶的是,这并不能解决问题。 ls -l 显示 /usr/local/lib/libpng15.15.dylib -&gt; /opt/X11/lib/libpng15.15.png,但错误仍然存​​在(即使在打开新的 python shell 之后)。错误和之前一样。
    • 用 sudo/root 做任何事情来破坏系统安装的文件几乎总是一个坏主意
    猜你喜欢
    • 2014-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    • 2018-12-12
    • 1970-01-01
    • 2016-05-30
    相关资源
    最近更新 更多