Подтвердить что ты не робот

Установка MatplotLib в mac osx lion

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

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

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

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

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

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

EDIT: я нашел способ, не устанавливая новую версию python:

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

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

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 (на момент написания этой статьи) и path/usr/local/Cellar/...

Ответ 4

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

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

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

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

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

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

Ответ 5

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

Ответ 6

Вы можете просто установить версию Matplotlib Python 2.6, предполагая, что 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 он предназначен. (проверьте список поддонов/портов, чтобы получить правильное имя пакета, если я ошибаюсь)