前几天,我试图深入研究this问题并提供一些见解。也许有了额外的见解,它最终可以解决。
注意事项:
所以,当我尝试在Notebook中绘制一些内容时,我得到了matplotlib的正常文本输出,没有任何数字。在我启动笔记本的终端中,我可以看到以下错误:
libpng warning: Application built with libpng-1.2.41 but running with 1.5.14
由于我之前得出结论,问题必须在后端,我检查了哪些库链接在那里:
otool -L /Library/Python/2.6/site-packages/matplotlib-1.3.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/_tkagg.so
我系统的输出是:
/Library/Python/2.6/site-packages/matplotlib-1.3.0-py2.6-macosx-10.6-universal.egg/matplotlib/backends/_tkagg.so:
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 7.9.0)
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 125.2.11)
/System/Library/Frameworks/Tcl.framework/Versions/8.5/Tcl (compatibility version 8.5.0, current version 8.5.7)
/System/Library/Frameworks/Tk.framework/Versions/8.5/Tk (compatibility version 8.5.0, current version 8.5.7)
因此可能的违规候选人是Tcl和Tk。然后我跑了:
find /System -name libpng\*
确实我找到了:
/System/Library/Tcl/8.4/Img1.4/libpngtcl1.2.24.dylib
/System/Library/Tcl/8.5/Img1.4/libpngtcl1.2.24.dylib
以及Python自己的运输:
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/libpng.3.dylib
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/libpng.dylib
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/libpng12.0.dylib
/System/Library/Frameworks/Python.framework/Versions/2.6/lib/libpng12.dylib
我继续前进并downloaded the source code获取Tcl / Tk 8.6并自行编译,希望他们能够针对libpng进行编译,但事实并非如此。我仍然有同样的错误:
libpng warning: Application built with libpng-1.2.41 but running with 1.5.14
当我编译matplotlib时,它说由于补丁它发布了自己的libagg并且我找不到它正在使用的tkagg,所以也许这就是出错的地方?或者是由用Tk编译的系统提供的Python 2.6,它与旧的libpng链接?
我想我可以尝试针对libpng版本的Tcl / Tk 8.5编译matplotlib,或者针对Python框架中的可用版本编译matplotlib,看看是否都运行在libpng版本1.2.41上。
是否有人知道后端可能发生的位置以及如何修复编译以使用正确的libpng版本?
答案 0 :(得分:1)
你解决了这个问题吗?我有一个类似的问题,我通过在构建matplotlib时临时重命名包含Python附带的libpng头文件的文件夹(在我的例子中,它是X11)来解决它。安装matplotlib后,重命名该文件夹。