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

Ошибка при установке matplotlib

Я попытался использовать pip install matplotlib и git clone, а затем python setup.py install, как описано в faq для Mac OS 10.7. Но я получаю ту же ошибку:

[...]
llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -DPY_ARRAY_UNIQUE_SYMBOL=MPL_ARRAY_API -DPYCXX_ISO_CPP_LIB=1 -I/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include -I. -I/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include/freetype2 -I./freetype2 -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c src/ft2font.cpp -o build/temp.macosx-10.7-intel-2.7/src/ft2font.o
cc1plus: warning: command line option "-Wstrict-prototypes" is valid for Ada/C/ObjC but not for C++
In file included from src/ft2font.cpp:3:
src/ft2font.h:16:22: error: ft2build.h: No such file or directory
src/ft2font.h:17:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:18:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:19:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:20:10: error: #include expects "FILENAME" or <FILENAME>
src/ft2font.h:21:10: error: #include expects "FILENAME" or <FILENAME>
In file included from src/ft2font.cpp:3:
src/ft2font.h:34: error: ‘FT_Bitmap’ has not been declared
src/ft2font.h:34: error: ‘FT_Int’ has not been declared
src/ft2font.h:34: error: ‘FT_Int’ has not been declared
src/ft2font.h:86: error: expected ‘,’ or ‘...’ before ‘&’ token
[...]

Кажется, что у меня отсутствует какой-то пакет, установленный в моей системе? Или есть другой лучший способ установить matplotlib?

Спасибо!

UPDATE: по поиску и поиску в SO Я обнаружил, что мне может не хватить пакет freetype2, однако, если я попытаюсь установить его по homebrew, я получаю предупреждающее сообщение:

[me @ my mac]$ brew search freetype
Apple distributes freetype with OS X, you can find it in /usr/X11/lib.
However not all build scripts look here, so you may need to call ENV.x11
in your formula install function.
4b9b3361

Ответ 1

У меня была эта проблема на сервере Ubuntu 12.04.

Мне пришлось установить libfreetype6-dev и libpng-dev из репозиториев. Я использовал virtualenv и установил matplotlib, используя pip, когда я столкнулся с этой проблемой.

Подсказки, что мне нужно было сделать это, появились из предупреждающих сообщений, которые появляются в начале установки matplotlib, поэтому следите за сообщениями, указывающими, что зависимость найдена, но не заголовки.

Ответ 2

Такая же ошибка, установка работала на одном из моих машин Lion, но не на другом. Отследил его до отсутствующего pkg-config

$ brew install pkg-config
$ pip install -U 'http://sourceforge.net/projects/matplotlib/files/matplotlib/matplotlib-1.1.0/matplotlib-1.1.0.tar.gz/download'

(см. также https://jholewinski.org/blog/installing-matplotlib-on-os-x-10-7-with-homebrew/)

Ответ 3

Спасибо за ссылку выше. Я смог получить matplotlib, работая с некоторыми незначительными изменениями. Я документирую конкретное сообщение об ошибке, с которым я столкнулся, для справок в будущем.

Env: Mac OS X 10.7.4 (Lion) работает под управлением python 2.7.1 (находится в /usr/bin )

Я начал пытаться заставить matplotlib работать с установкой по умолчанию. setup.py намекнул на некоторые проблемы:

freetype2: found, but unknown version (no pkg-config)
                        * WARNING: Could not find 'freetype2' headers in any
                        * of '.', './freetype2'.

и

OPTIONAL BACKEND DEPENDENCIES
                libpng: found, but unknown version (no pkg-config)
                        * Could not find 'libpng' headers in any of '.'

шаг настройки завершится неудачей со следующим сообщением об ошибке:

/System/Library/Frameworks/Python.framework/Versions/2.7/Extras/lib/python/numpy/core/include/numpy/__multiarray_api.h:1187: warning: ‘int _import_array()’ defined but not used
lipo: can't open input file: /var/tmp//ccG28dDI.out (No such file or directory)

Google для этого файла ничего не помог. Я немного порылся и решил, что не стоит тратить время на виртуальный маршрут.

В итоге я закончил шаги, описанные выше в ссылке jholewinski. Установил новый python 2.7.4 в/usr/local/и выполнил инструкции там. (Я снова установил pkg-config). Мне удалось вытащить последнюю версию matplotlib из git, и она отлично работала.

На этот раз присутствовали библиотеки libpng (1.5.4) и freetype2 (13.2.7).