【发布时间】:2014-04-06 18:38:55
【问题描述】:
我使用this guide 为 Python 安装了“科学堆栈”(OSX 10.9.2、brewed Python 2.7.6、IPython 2.0、matplotlib 1.3.1、libpng 1.6.10)。一切看起来都很好。
但是,尝试在 IPython 的笔记本环境中使用 --pylab=inline 运行一个简单的绘图会给我这个错误:
/usr/local/Cellar/python/2.7.6/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/IPython/core/formatters.py:239: FormatterWarning: Exception in image/png formatter: Could not create write struct
FormatterWarning,
在终端中显示:libpng warning: Application built with libpng-1.5.17 but running with 1.6.10
据我所知,我没有安装其他 libpng。我尝试从/usr/local/ 中删除以libpng 开头的所有文件并重新安装所有文件,但无济于事。构建 matplotlib (pip install matplotlib) 的输出包含:
BUILDING MATPLOTLIB
matplotlib: yes [1.3.1]
python: yes [2.7.6 (default, Mar 16 2014, 15:04:47) [GCC
4.2.1 Compatible Apple LLVM 5.1 (clang-503.0.38)]]
platform: yes [darwin]
REQUIRED DEPENDENCIES AND EXTENSIONS
numpy: yes [version 1.8.1]
dateutil: yes [using dateutil version 2.2]
tornado: yes [using tornado version 3.2]
pyparsing: yes [using pyparsing version 2.0.1]
pycxx: yes [Couldn't import. Using local copy.]
libagg: yes [pkg-config information for 'libagg' could not
be found. Using local copy.]
freetype: yes [version 17.2.11]
png: yes [version 1.6.10]
OPTIONAL SUBPACKAGES
sample_data: yes [installing]
toolkits: yes [installing]
tests: yes [using nose version 1.3.1]
OPTIONAL BACKEND EXTENSIONS
macosx: yes [installing, darwin]
qt4agg: yes [installing, Qt: 4.8.6, PyQt4: 4.10.4]
gtk3agg: no [Requires pygobject to be installed.]
gtk3cairo: no [Requires cairo to be installed.]
gtkagg: no [Requires pygtk]
tkagg: yes [installing, version 81008]
wxagg: no [requires wxPython]
gtk: no [Requires pygtk]
agg: yes [installing]
cairo: no [cairo not found]
windowing: no [Microsoft Windows only]
OPTIONAL LATEX DEPENDENCIES
dvipng: no
ghostscript: no
latex: no
pdftops: no
所以在我看来 matplotlib 应该针对 libpng 1.6.10 编译?有人可以帮我弄清楚发生了什么吗?
【问题讨论】:
-
我应该补充一点,带有 MacOSX 后端图形的标准 IPython 终端环境可以正常工作。
-
是的!谢谢!我用
/opt/X11/include/libpng15/png.h和其他一些类似的方式安装了 XQuartz。删除它们并重新编译解决了我的问题。 -
供将来参考:下载 Anaconda 之类的东西可能更容易,它会安装整个 Scipy 堆栈,而不是单独安装所有部分。
-
我也遇到了同样的问题,你能具体说明你做了什么吗?
-
我跑了
sudo find / -name "png*.h"来找到@Glenn 提到的头文件。我在/opt/X11中注意到了一些,它属于 XQuartz。于是我跟着this guide把XQuartz删了,用pip重新安装了matplotlib和ipython。