Невозможно установить matplotlib в Mac OS X
Я пытаюсь установить 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 ответов
Вы также можете рассмотреть возможность использования дистрибутива Enthought (который поставляется бесплатно даже для некоммерческого использования). Он полностью устанавливается без каких-либо затруднений http://www.enthought.com/products/getepd.php(У меня нет никаких отношений с Enthought вообще - Я просто довольный пользователь)
Корень проблемы в том, что 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
Старый, но все еще всплывал в моем поиске, когда у меня была та же проблема со Snow Leopard.
Вы сказали, что используете доморощенный, так что вам нужно
brew link freetype
после его установки (с помощью "brew install freetype").
Это произошло через эту ошибку. Я сделал то же самое с libpng, что привело к успешной установке.
Недавно мне дали новый рабочий компьютер (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
Активируйте виртуальную среду:
$ источник. / Путь / к / каталогу /TESTENV/ бен / активировать
Теперь пакеты python будут установлены внутри TESTENV, как если бы это был корневой каталог установки. То, что работало для меня, было выполнить:
$ python setupegg.py install
в исходных папках numpy, scipy и matplotlib (в таком порядке).
Надеюсь, это поможет!
У меня была такая же проблема при попытке установить matplotlib. Попробовав какое-то из приведенных выше решений, я просто
brew install freetype
Затем установка прошла успешно, пока не столкнулся с png.h не найден. Я побежал
brew install libpng
Установка завершена и Matplotlib был установлен.
(на ОС X 10.8.4)
Вот как я это сделал:
$ sudo make -f make.osx fetch deps mpl_build mpl_install
Это установит его в /lib/python2.6/site-packages
просто переместите его содержимое в /Library/Python/2.6/site-packages/
для согласованности.
Я сталкиваюсь с этим каждый раз, когда собираю matplotlib. Мое решение:
export CFLAGS=-I/usr/X11/include/freetype2
python setup.py install
Я очень рекомендую Scarpy Superpack от StrongInference. Он работает со встроенным в Apple Python на 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, а не python!
У меня похожая ошибка - на моем компьютере с Linux у вас отсутствуют файлы разработки для libfreetype - это libfreetype6-dev
После того, как я установил этот пункт, сделал свое дело.
Я следовал инструкциям на этой странице. Я застрял в
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/...
Мне нравится использовать варево, и ни одно из первых трех объяснений не сработало и не привлекло меня. Тем не менее, я посмотрел еще немного и нашел это дружеское объяснение и решение:
http://jholewinski.org/blog/installing-matplotlib-on-os-x-10-7-with-homebrew/
Резюме: libpng на Snow Leopard не дружит с matplotlib. Вы можете вручную установить невыпущенную matplotlib, чтобы обойти это:
brew install python
brew install gfortran
brew install pkg-config
easy_install pip
pip install numpy
git clone https://github.com/matplotlib/matplotlib.git
cd matplotlib
python setup.py build
python setup.py install
Попробуйте символическую ссылку freetype2 на freetype:
ln -s /usr/local/opt/freetype/include/freetype2/ /usr/local/include/freetype
Я смог заставить это работать без изменения моего PATH и т. Д. Кажется, моя проблема заключалась в том, что библиотека freetype (установленная с brew) не была найдена при использовании не-brew python
brew install python
brew install freetype
# maybe more dependencies
Затем создайте virtualenv с помощью brew python (без явного указания пути к brew python я обнаружил, что brew virtualenv по-прежнему будет использовать OSX /usr/bin/python по умолчанию):
/usr/local/bin/virtualenv -p /usr/local/bin/python env
source env/bin/activate
pip install matplotlib