2012-07-12 106 views
2

我正在尝试为Python安装matplotlib库。安装是确定的,但是当我在Python中导入pylab(例如,将pylab导入为p)时,出现以下错误。python matplotlib库安装在max os x


File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/mathtext.py", line 61, in <module> 
    import matplotlib._png as _png 

ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so, 2): Symbol not found: _png_set_longjmp_fn 

    Referenced from: /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so 

    Expected in: flat namespace in /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so 

谷歌搜索表明,链接错误(不找“_png_set_longjmp_fn”)是关系到一个32/64位编译问题为png格式库。

我试图根据库中的README.osx文件重新安装matplotlib,但没有修复。我发现其他方法没有解决它。另外,我检查了这些库是以32位还是64位编译的。相关的二进制文件如下支持(通用二进制文件)。


>file /Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so 

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so: Mach-O universal binary with 2 architectures 

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so (for architecture i386): Mach-O bundle i386 

/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so (for architecture x86_64): Mach-O 64-bit bundle x86_64 


>file /Library/Frameworks/libpng.framework/Versions/Current/libpng 

/Library/Frameworks/libpng.framework/Versions/Current/libpng: Mach-O universal binary with 2 architectures 

/Library/Frameworks/libpng.framework/Versions/Current/libpng (for architecture x86_64): Mach-O 64-bit dynamically linked shared library x86_64 

/Library/Frameworks/libpng.framework/Versions/Current/libpng (for architecture i386): Mach-O dynamically linked shared library i386 

我的OS X版本10.7.4狮子。你对这个问题有什么想法吗?谢谢!!!

+2

不是你的问题的解决方案,但你可能想看看[Enthought Python](http:// www.enthought.com/products/epd.php)发行版,其中包含matplotlib随时可以发布的版本,以及其他常常难以在OS X上安装的工具。 – ChrisP 2012-07-12 13:41:32

+0

做了什么你确实要安装matplotlib?你从源代码编译?我建议你像@ChrisP所说的那样安装Enthought的python发行版。 – 2012-07-12 18:10:19

+0

enthought包解决了这个问题。谢谢你,克里斯!我从Github获得了matlablib并从源代码编译。无论如何,谢谢,杰森! – user1520172 2012-07-12 19:16:19

回答

2

我得到了同样的问题,你有一天,当我从matplotlib import pyplot那天做的。 5小时砰我的头靠在墙上后,该解决方案为我(从practicalcomputing.org

我得到了这组命令来设置simlinks:

sudo mkdir -p /usr/local/include 
sudo ln -s /usr/X11/include/freetype2/freetype /usr/local/include/freetype 
sudo ln -s /usr/X11/include/ft2build.h /usr/local/include/ft2build.h 
sudo ln -s /usr/X11/include/png.h /usr/local/include/png.h 
sudo ln -s /usr/X11/include/pngconf.h /usr/local/include/pngconf.h 
sudo ln -s /usr/X11/include/pnglibconf.h /usr/local/include/pnglibconf.h 
sudo mkdir -p /usr/local/lib 
sudo ln -s /usr/X11/lib/libfreetype.dylib /usr/local/lib/libfreetype.dylib 
sudo ln -s /usr/X11/lib/libpng.dylib /usr/local/lib/libpng.dylib 

这并不完全解决你所有的问题,但它解决了我的pkg-config问题(等等),也许类似的链接可以帮助QT。