1

요즘은 this 질문을 깊이 파고 들어보고자합니다. 어쩌면 추가적인 통찰력으로 마침내 해결 될 수 있습니다.Mac OS Snow Leopard, IPython 노트북 matplotlib 백엔드와 libpng의 일치하지 않음

유의할 것들 :

  1. 나는 Gurobi 선형 프로그래밍 솔버를 사용해야하기 때문에 (나는 심장 박동에 할 것) 나를 위해 different Python version is not an option 설치.
  2. matplotlib은 libpng 1.5.14로 컴파일되고 런타임시 링크가 잘됩니다. IPython 콘솔에서 PNG 그림을 완벽하게 그릴 수 있습니다.
  3. 이전 점 때문에 matplotlib로 컴파일 된 IPython Notebook에서 사용되는 백엔드에서 오류가 발생해야한다고 생각합니다.
  4. 나는 matplotlib 1.3의 소스를 가지고 모든 것을 시도하고있다. 누군가가 이전 버전과 호환되도록 만들 수 있다면 너무 오래된 버전이기도하다. 내가 노트북에 뭔가를 플롯 할 때

그래서, 나는하기 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 

을뿐만 아니라 파이썬이 자신의 운송과 같이

/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 
내가 나서서

와는 Tcl/Tk의 8.6 및 컴파일에 대한 downloaded the source code 그들 자신이 libpng에 맞춰 컴파일하기를 바랐으나 그럴 수는 없었다. 일이 잘못 곳 어쩌면 그건 인해 패치 그 선박에 자신의 libagg을 내가하기 matplotlib 컴파일 할 때

libpng warning: Application built with libpng-1.2.41 but running with 1.5.14 

가 있다고 나는 어떤이가 사용하는 tkagg 찾을 수 없습니다 : 난 여전히 같은 오류가있어? 또는 Python 2.6이 Tk로 컴파일 된 시스템에 의해 제공되는데, 이것은 이전 libpng에 링크되어 있습니까?

나는 Tcl/Tk 8.5의 libpng 버전 또는 파이썬 프레임 워크에서 사용할 수있는 버전에 대해 matplotlib를 컴파일하고 libpng 버전 1.2.41에서 실행되는지 확인할 수 있습니다.

어디에서 백엔드가 발생할 수 있는지 그리고 올바른 libpng 버전을 사용하기 위해 컴파일을 수정하는 방법을 아는 사람이 있습니까?

+1

게시 한 내용이 답변이 아니므로 스레드를 하이재킹했습니다. 어쨌든 새로운 질문을 게시하는 것은 많은 사람들이 당신의 '질문에 대한 답변'을 보는 것과 같은 이점입니다. – tacaswell

+0

그리고 적어도 하나의 태그를 osx 태그로 바꿀 수 있습니까? 이것은 정말 맥 전문가가 볼 필요가있다. – tacaswell

+0

OK, osx 태그를 추가했습니다. 힌트를 보내 주셔서 감사합니다. 나는 내 앞에 두 개의 다른 무응답이 있었기 때문에 놀랐다. 적어도 나는 그 질문을 더 풀기 위해 노력했다. – Midnighter

답변

1

아직 문제가 해결 되었습니까? 나는 비슷한 문제가 있는데, matplotlib를 빌드 할 때 Python과 함께 제공되는 libpng의 헤더 파일을 포함하는 폴더의 이름을 임시적으로 바꾸어서 해결했습니다 (제 경우에는 X11 임).matplotlib을 설치 한 후 폴더의 이름을 다시 바꿉니다.

+0

어느 시점에서 필자는 시스템 파이썬 사용의 의존성을 포기할 수있었습니다. 그래서 나는 내 자신의 Python 버전을 컴파일하고,'HomeBrew'를 통해 라이브러리를 설치 한 다음, matplotlib를 컴파일했다. – Midnighter

관련 문제