Вопрос

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

Я подошел к терминалу и набрал python --version и его проверку требований.

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

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

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

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

Редактировать:Я нашел способ, без необходимости устанавливать новую версию python:

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

Это было полезно?

Решение

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

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

Другие советы

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

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

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

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/...

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

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

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

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

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

Хорошая альтернатива Macports - это фик, что, кажется, дает вам больше контроля (сборка из источника). Я еще не уверен, что он полностью готов к Mac OS X Lion.

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top