Установка MatplotLib в Mac OSX Lion - PullRequest
18 голосов
/ 23 июля 2011

Я пытался установить matplotlib в Mac OSX Lion.Пытался использовать бинарный файл, который находится на сайте sourcefourge, но я получил эту ошибку: «Для установки matplotlib требуется System Python 2.7».

Я пошел в терминал и набрал python --version и проверил требования.

После этого я попытался использовать пункт, и при этом получил следующую ошибку:

"src / _image.cpp: 908: ошибка: недопустимое использование неполного типа 'structpng_info_def '"

Можете ли вы дать мне подсказки, как его установить?

Большое спасибо.

РЕДАКТИРОВАТЬ: я нашел способ, без необходимости устанавливать новую версиюпитон:

http://the.taoofmac.com/space/blog/2011/07/24/2222

Ответы [ 6 ]

9 голосов
/ 24 июля 2011

Это из-за изменения в API для libpng v1.5 (который включен в Mac OSX Lion). Изменения уже были переданы в апстрим, поэтому вам нужно будет скомпилировать из репозитория апстрим до следующего выпуска.

Вы можете следовать инструкциям на http://jholewinski.wordpress.com/2011/07/21/installing-matplotlib-on-os-x-10-7-with-homebrew/

5 голосов
/ 17 августа 2011

Я следовал инструкциям этой страницы .Я застрял на

pip install -e git+https://github.com/matplotlib/matplotlib#egg=matplotlib-dev

Затем я сделал:

git clone https://github.com/matplotlib/matplotlib.git
cd matplotlib
python setup.py build
python setup.py install

Проверьте мою установку, набрав в терминале:

python
import matplotlib
print matplotlib.__version__
print matplotlib.__file__

Я получил версию 0.10.0 dev(на момент написания статьи) и путь /usr/local/Cellar/...

4 голосов
/ 23 июля 2011

Вы можете попробовать с "официальным" дистрибутивом Python, возможно, Apple подправил поставляемый.Вы можете найти 2.7 здесь: http://www.python.org/download/ Возможно, вам придется переустанавливать numpy, а также послесловия: http://sourceforge.net/projects/numpy/files/NumPy/1.6.1/

Я бы посоветовал также установить scipy. Дайте мне знать, если это работает;)

3 голосов
/ 23 июля 2011

Я бы порекомендовал использовать macports , он должен заботиться о зависимостях и не зависеть от версии системного Python.

РЕДАКТИРОВАТЬ : всего несколько пояснений,с учетом комментариев к этому ответу.

Зачем использовать macports (или другой установщик)?Поскольку они заботятся о зависимостях, предоставляют функциональные возможности для удаления и переключения между версиями (я успешно использовал последнюю версию для gcc и python).И потому, что расположение установки по умолчанию не является местоположением исполняемого файла системы.Переопределение системного Python может нарушить работу приложений, которые полагаются на него (это, безусловно, верно во многих дистрибутивах Linux, возможно, в меньшей степени в Mac OS X).

Когда это особенно полезно?Если вы хотите установить поверх версии python, отличной от системного, и когда у вас есть не-python расширения (C, C ++, Fortran ...).

В чем недостаток?Как упомянул @Trond в комментариях, хорошо, если вы согласны с компиляцией пакетов по умолчанию.У вас нет управления настройками или флагами компилятора, как если бы вы строили из исходного кода.

Хорошей альтернативой macports является fink , который, кажется, дает вам больше контроля (buildиз источника).Я не уверен, что он полностью готов для Mac OS X Lion.

1 голос
/ 23 июля 2011

Я знаю, что это займет гораздо больше времени, но я бы порекомендовал установить python, numpy и matplotlib из исходного кода, чтобы обеспечить согласованность вашей системы.Из ошибки может показаться, что у вас проблема с поддержкой libPNG.У меня написано " Как установить инструменты разработки Python на Mac OSX ", которые могут оказаться полезными.Он содержит инструкции по установке Python, Numpy, Matplotlib и все необходимые зависимости.Я понимаю, что вы работаете с Python 2.7, и я перечисляю инструкции для Python 2.6.5, но это был бы тот же подход.Надеюсь, ты заставишь его работать.

0 голосов
/ 08 декабря 2011

Вы можете просто установить версию Python 2.6 Matplotlib, предполагая, что Python2.6 включен в состав Lion (py2.5 и 2.6 включены в Mac OS 10.6 "Snow Leopard" - попробуйте ввести python2. 6 , чтобы узнать, установлена ​​ли эта версия.).

На MacPorts вы делаете это через что-то вроде:

sudo port install py26-matplotlib

где py26 -... (или py25 -..., py27 -... и т. Д.) Указывает, для какой версии Python он предназначен. (проверьте список поддонов / портов, чтобы получить правильное имя пакета, если я угадала неправильно)

...