2013-04-07 3 views
3

Я написал небольшую программу, когда использовал мой предыдущий компьютер (компьютер моей предыдущей работы), который был машиной Windows. Теперь, основываясь на советах друга, у меня есть Mac, но мне было чертовски время работать над этим.Pylab ImportError - библиотека не загружена - запутанная структура каталогов Mountain Lion?

В частности, моя программа использует pylab (часть Matplotlib), и я имею в ImportError после import pylab:

Error: ~/Documents/New folder/Programowanie/Projekt/SimAccents_v2d.py:2: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/pylab.py:1: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/pylab.py:222: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/mpl.py:2: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/axis.py:14: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/text.py:29: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/backend_bases.py:47: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/textpath.py:11: 
/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/mathtext.py:61: ImportError: dlopen(/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so, 2): Library not loaded: /opt/X11/lib/libpng15.15.dylib 

Я попытался import matplotlib в Python IDLE, который работал, поэтому, видимо, проблема с pylab , а не matplotlib. Тем не менее, я пробовал import matplotlib.pyplot и получил почти такую ​​же ошибку, что, я думаю, это потому, что они довольно похожие модули/части matplotlib.

Я сделал много копания в Интернете и нашел несколько потенциально полезных вещей, но результат был более путаным. This post кажется аналогичной проблемой для моей, которую автор решил путем «удаления (после создания резервной копии) папки matplotlib в папке сайта-пакетов моей системы (/Library/Python/2.7/site-packages)». Я ожидаю, что причина, по которой это могло сработать, заключается в том, что, возможно, Python ищет неправильное место для файла.

Чтобы проверить это, я использовал способ узнать Matplotlib расположение установки:

>>> import matplotlib 
>>> matplotlib.__file__ 
'/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/__init__.pyc' 

... и расположение каталога Matplotlib в:

>>> matplotlib.get_configdir() 
'/Uses/stanislawpstrokonski/.matplotlib' 

Исследуя эти пути, я обнаружил, что второй одна из них - скрытая папка, содержащая только два файла - .DS_Store (скрытый) и fontList.cache. Первый каталог, однако, был немного более похожий на привидение, так как Python говорит, что этот каталог, в том числе конечного файла «проблемы» сообщения об ошибке выше, существует:

>>> os.path.isfile('/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/site-packages/matplotlib/_png.so') 
True 

... но я не смог найти ~/Library/Frameworks на моем Mac, как это и не отображается в Finder, и Mac OS терминал не может показаться, чтобы найти его либо:

Stanislaws-MacBook-Pro:~ stanislawpstrokonski$ cd ~/Library/Frameworks 
-bash: cd: /Users/stanislawpstrokonski/Library/Frameworks: No such file or directory 

это точно такая же история для/Library/Python - Python подтверждает свое существование, но Terminal отрицает это. Однако, когда я печатаю этот код на терминале, он решает, что путь все-таки существует:

Stanislaws-MacBook-Pro:~ stanislawpstrokonski$ cd /usr/bin; ls -l python2.7 
lrwxr-xr-x 1 root wheel 75 16 Nov 16:30 python2.7 -> ../../System/Library/Frameworks/Python.framework/Versions/2.7/bin/python2.7 

Другое дело, я проверил был Library not loaded: путь от исходного ImportError:

>>> os.path.isfile('/opt/X11/lib/libpng15.15.dylib') 
False 

Так что, возможно проблема в том, что мне не хватает этого пути? Что я должен делать? Разве matplotlib не предназначен для сортировки такого материала, когда он установлен?

Я не знаю, почему pylab плохо себя ведет, когда wxPython и numpy (и, по-видимому, matplotlib в стороне от pylab и pyplot), похоже, работают отлично. Я также озадачен структурой каталогов Mac OS X, хотя у меня все еще есть ощущение, что это может быть источником проблемы. Другая причина может заключаться в том, что я установил Python на свою машину, но я слышал, что у Mac OS уже установлен Python, так что, возможно, они каким-то образом путают друг друга.

Прошу прощения, что этот пост настолько длинный, но когда я точно не знаю, где проблема, мне кажется, что я должен все записать. Может ли кто-нибудь помочь мне заставить pylab работать и, возможно, просветить меня о Маках в этом процессе? Я был бы чрезвычайно благодарен.

p.s. Я использую Mountain Lion, и я купил свой Mac около двух недель назад.

p.p.s. This person, похоже, имеет аналогичную проблему, хотя это другой бит, который не импортируется ...

+0

Та же проблема. У вас есть libpng, он находится в:/usr/local/Cellar/libpng/... но я не могу найти способ, которым я могу изменить путь в matplotlib из image.py, если он ссылается на matplotlib._image Я не знаю что делать.. – Pruntoff

ответ

0

У меня была аналогичная проблема с matplotlib на OS X. Вам просто нужно установить libpng. Я использовал brew: brew install libpng.

Смежные вопросы