2

Python 用の matplotlib ライブラリをインストールしようとしています。インストールは問題ありませんでしたが、Python で pylab をインポート (例: pylab を p としてインポート) すると、次のエラーが発生しました。


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

Google 検索は、リンク エラー ( "_png_set_longjmp_fn" を検索しない) が png ライブラリの 32/64 ビット コンパイルの問題に関連していることを示しています。

ライブラリの 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 バージョンは Lion 10.7.4 です。この問題について何か考えはありますか?ありがとう!!!

4

1 に答える 1

2

先日、あなたと同じ問題が発生しましたmatplotlib import pyplot。壁に5時間頭をぶつけた後、この解決策がうまくいきました(practicalcomputing.orgより)

シムリンクをセットアップするためのコマンドのセットを取得しました。

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 に役立つでしょう。

于 2013-01-02T22:25:16.950 に答える