Невозможно установить matplotlib в Mac OS X - PullRequest
18 голосов
/ 04 ноября 2010

Я пытаюсь установить matplotlib для графических приложений в Python на Mac OS X. Когда я запускаю "python setup.py install", он выдает мне множество ошибок: http://pastebin.com/u7fL37ic.

Быстрыйфрагмент:

src/ft2font.cpp:2170: error: ‘FT_LOAD_TARGET_MONO’ was not declared in this scope
src/ft2font.cpp:2171: error: ‘FT_LOAD_TARGET_LCD’ was not declared in this scope
src/ft2font.cpp:2172: error: ‘FT_LOAD_TARGET_LCD_V’ was not declared in this scope
src/ft2font.cpp:2175: error: ‘_ft2Library’ was not declared in this scope
src/ft2font.cpp:2175: error: ‘FT_Init_FreeType’ was not declared in this scope
src/ft2font.cpp: In destructor ‘virtual ft2font_module::~ft2font_module()’:
src/ft2font.cpp:2186: error: ‘_ft2Library’ was not declared in this scope
src/ft2font.cpp:2186: error: ‘FT_Done_FreeType’ was not declared in this scope
lipo: can't figure out the architecture type of: /var/folders/Nj/Njnlp9qSF64sMESWcaDnk++++TI/-Tmp-//cchyYmM5.out
error: command 'gcc-4.0' failed with exit status 1

Я установил freetype с помощью MacPorts, и я подумал, что это решит проблему, но не повезло.Дает мне ту же ошибку, что и раньше.Похоже, что он не может найти нужные файлы freetype:

BUILDING MATPLOTLIB
        matplotlib: 1.0.0
            python: 2.6.5 (r265:79359, Mar 24 2010, 01:32:55)  [GCC
                    4.0.1 (Apple Inc. build 5493)]
          platform: darwin
REQUIRED DEPENDENCIES
             numpy: 1.5.0
         freetype2: found, but unknown version (no pkg-config)
                    * WARNING: Could not find 'freetype2' headers in any
                    * of '.', './freetype2'.

Где я должен поместить файлы freetype, чтобы их можно было найти?Прямо сейчас они находятся в / opt / local / lib

Есть идеи?

Ответы [ 14 ]

33 голосов
/ 01 июня 2012

Корень проблемы в том, что freetype и libpng устанавливаются в неканонических местах XCode, в / usr / X11 вместо / usr или /usr/local.

Все уже предоставленные ответы решают проблему, перестраивая freetype и libpng, либо вручную, либо используя менеджер пакетов, такой как homebrew.

Однако вы можете получить matplotlib для компиляции, просто вставив ссылки на существующие заголовки и библиотеки freetype / libpng в дерево / usr / local с помощью:

sudo mkdir -p /usr/local/include
sudo ln -s /usr/X11/include/freetype2/freetype /usr/local/include/freetype
sudo ln -s /usr/X11/include/ft2build.h /usr/local/include/ft2build.h
sudo ln -s /usr/X11/include/png.h /usr/local/include/png.h
sudo ln -s /usr/X11/include/pngconf.h /usr/local/include/pngconf.h
sudo ln -s /usr/X11/include/pnglibconf.h /usr/local/include/pnglibconf.h
sudo mkdir -p /usr/local/lib
sudo ln -s /usr/X11/lib/libfreetype.dylib /usr/local/lib/libfreetype.dylib
sudo ln -s /usr/X11/lib/libpng.dylib /usr/local/lib/libpng.dylib

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

sudo pip install matplotlib

Если у вас еще нет pip, вы можете установить его с помощью easy_install (который поставляется с OS X):

sudo easy_install pip

Я проверял это только на 10.7 (Лев), но я подозреваю, что это также будет работать с 10.6.

Это немного взломано, но я нашел, что это самый простой способ установить matplotlib против стандартной среды Python, поставляемой с OS X. Стандартная среда Python в 10.7 на самом деле довольно хороша, и включает, например, пакет numpy-1.5.1, который связан с оптимизированной библиотекой BLAS Apple (ускорение):

dyldinfo -dylibs /System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/linalg/lapack_lite.so 
for arch x86_64:
attributes     dependent dylibs
            /System/Library/Frameworks/Accelerate.framework/Versions/A/Accelerate
            /usr/lib/libSystem.B.dylib
8 голосов
/ 10 октября 2012

Старый, но все еще появлялся в моем поиске, когда у меня была та же проблема с Snow Leopard.

Вы сказали, что используете homebrew, поэтому вам нужно

brew link freetype

после установкиэто (с "brew install freetype").

Эта ошибка прошла.Я сделал то же самое с libpng, что привело к успешной установке.

7 голосов
/ 20 января 2011

Недавно мне дали новый рабочий компьютер (MacBook Pro OS 10.6.5), и я хотел установить numpy + scipy + matplotlib в виртуальной среде Python. Я не эксперт, но виртуальная среда, кажется, позволяет вам устанавливать пакеты таким образом, чтобы они были изолированы от общесистемных пакетов, по сути, путем умного переопределения системного пути. Итак, для одного проекта, над которым я работаю, требующего определенных версий этих пакетов, я могу установить их один раз и выполнить всю свою работу для этого проекта независимо от других изменений, которые я делаю вне среды.

После долгих проб и ошибок я смог создать виртуальную среду, в которой Numpy 1.5.1, Scipy 0.8.0 и Matplotlib 1.0.0 работают без нареканий. Вот как:

Сначала установите следующие четыре пакета:

  • FreeType-2.4.4
  • libpng, версия 1.4.5 найдена по адресу http://ethan.tira -thompson.org / Mac_OS_X_Ports.html . Установка matplotlib не удалась, когда я попытался установить 1.5.0 из исходного кода!
  • pkg-config, версия 0.23
  • virtualenv для Python2.6

(я новый пользователь, поэтому не могу публиковать ссылки на них, извините!).

Если вы устанавливаете из исходного кода, используйте стандартную установку:

  • $ ./configure
  • $ make
  • $ sudo make install

Затем загрузите исходные файлы для numpy, scipy и matplotlib.

Теперь пришло время создать виртуальную среду в папке TESTENV:

$ virtualenv / path / to / dir / TESTENV

Активировать виртуальную среду:

$ source. / Путь / к / каталогу / TESTENV / бен / активировать

Теперь пакеты python будут установлены в TESTENV, как если бы это был корневой каталог установки. То, что работало для меня, должно было выполнить:

$ python setupegg.py install

в исходных папках numpy, scipy и matplotlib (в таком порядке).

Надеюсь, это поможет!

4 голосов
/ 14 ноября 2010

Попробуйте инструкции здесь .Мои заметки здесь .

3 голосов
/ 10 августа 2013

У меня возникла такая же проблема при попытке установить matplotlib. Попробовав какое-то из приведенных выше решений, я просто запустил

brew install freetype

затем установка прошла успешно, пока не столкнулся с png.h не найденным. Я побежал

brew install libpng

Установка завершена и Matplotlib был установлен.

(на ОС X 10.8.4)

3 голосов
/ 16 ноября 2010

Вот как я это сделал:

$ sudo make -f make.osx fetch deps mpl_build mpl_install

Это установит его в /lib/python2.6/site-packages, просто переместите его содержимое в /Library/Python/2.6/site-packages/ для согласованности.

2 голосов
/ 29 июля 2013

Я сталкиваюсь с этим каждый раз, когда собираю matplotlib.Мое решение:

export CFLAGS=-I/usr/X11/include/freetype2
python setup.py install
2 голосов
/ 02 мая 2012

У меня похожая ошибка - вам не хватает файлов разработки для libfreetype - на моей машине с Linux - это libfreetype6-dev

После того, как я установил этот пункт, он сделал свою работу.

2 голосов
/ 25 февраля 2011

Я очень рекомендую StrongInference Scipy Superpack .Он работает со встроенным Python от Apple на 10.6 Snow Leopard, и теперь он работает с 10.9.Он подходит как для 32-битной, так и для 64-битной установки.Для этого не требуется устанавливать отдельный дистрибутив Python или менеджеры пакетов, такие как Macports или Fink.

Используйте его, сначала загрузив скрипт оболочки с этой страницы .Затем:

sh superpack_10.6_2011.03.07.sh

Или замените superpack_10.6_2011.03.07.sh именем самого последнего сценария оболочки, когда они время от времени обновляют его.

Чтобы использовать его, обязательно введите ipythonа не питон!

1 голос
/ 24 декабря 2013

Попробуйте символическую ссылку freetype2 на freetype:

ln -s /usr/local/opt/freetype/include/freetype2/ /usr/local/include/freetype
...