Я написал небольшую программу, когда использовал мой предыдущий компьютер (компьютер моей предыдущей работы), который был машиной 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, похоже, имеет аналогичную проблему, хотя это другой бит, который не импортируется ...
Та же проблема. У вас есть libpng, он находится в:/usr/local/Cellar/libpng/... но я не могу найти способ, которым я могу изменить путь в matplotlib из image.py, если он ссылается на matplotlib._image Я не знаю что делать.. – Pruntoff