Ошибка при установке библиотеки изображений Python с помощью pip в Mac OS X 10.9

Я хочу установить PIL на Mavericks с помощью pip, но получить эту ошибку.

_imagingft.c:73:10: fatal error: 'freetype/fterrors.h' file not found
#include <freetype/fterrors.h>
         ^
1 error generated.
error: command 'cc' failed with exit status 1

Мои средства командной строки установлены и обновлены, и каждый намек, который я нашел, не помог. Как это сделать для компиляции?

EDIT: я только что проверил, freetype также уже установлен через homebrew

Ответ 1

Вместо символической ссылки на определенную версию freetype2, сделайте следующее:

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

Это избавляет вас от необходимости воссоздавать символическую ссылку при обновлении freetype2.

Ответ 2

С macports, решение, которое сработало для меня:

sudo port install freetype
sudo ln -s /opt/local/include/freetype2 /opt/local/include/freetype

И затем заново запустите процесс сборки PIL.

Ответ 3

Я решил эту проблему с этой символической ссылкой:

ln -s /usr/local/Cellar/freetype/2.5.1/include/freetype2 /usr/local/include/freetype

У меня есть freetype, уже установленный через homebrew тоже.

Ответ 4

Это вызвано изменением заголовков freetype >= 2.1.5. PIL не использует правильный документированный способ включения заголовков freetype, что приводит к сбою сборки, когда freetype наконец удалил устаревший способ включения заголовков. Эта проблема задокументирована в верхней части http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html:

ПРИМЕЧАНИЕ. Начиная с FreeType 2.1.6, схема включения старого заголовочного файла больше не поддерживается. Это означает, что теперь вы получаете сообщение об ошибке, если вы выполните следующее:

#include < freetype/freetype.h >
#include < freetype/ftglyph.h >

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

#include <ft2build.h>
#include FT_ERRORS_H

Ответ 5

После многих попыток я решил эту проблему скомпилировать PIL без поддержки freetype. Для этого я просто отсоединился от своего $PATH, используя brew unlink freetype, а затем pip install PIL==1.1.7.

Ответ 6

Я просто решил это, используя шаги, описанные в этом. Ответ на Stackoverflow. Кажется, это ошибка Xcode для установки freetype в странных местах.

Ответ 8

В моей OSx я нашел файл .h в /opt/local/include/freetype2 direcoty. Итак, я печатаю

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

работает

Возможно, лучший способ - добавить /opt/local/include в ваш путь включения clang.

Ответ 9

osx yosemite, это сработало для меня:

(virtualenv)

$ ln -s /opt/local/include/freetype2/ /usr/local/include/freetype2
$ pip install pil==1.1.7 --allow-external pil --allow-unverified pil

Ответ 10

Я использую Arch Linux и имею эту проблему. В моем случае пришлось вручную загрузить и распаковать zip файл из https://pypi.python.org/pypi/Pillow/2.2.1#downloads. Затем я отредактировал файл _imagingft.c, чтобы изменить путь включения от freetype/fterrors.h до fterrors.h, поскольку не было подкаталога freetype /usr/include/freetype2, где fterrors.h. Наконец python setup.py install работал нормально.

Изменить: я должен упомянуть, что это решение для установки Pillow, а не PIL, но Pillow - это просто вилка PIL, и это может быть применимо и к другим с этой проблемой.

Ответ 11

Если вы все еще ищете ответы, как я был после прочтения этого и другого поиска в Google, вам может быть интересно увидеть это:

Предупреждение

Pillow >= 2.1.0 больше не поддерживает "import _imaging". Вместо этого используйте "из ядра импорта PIL.Image как _imaging".

из здесь

К тому моменту, когда вы прочтете это, страница, вероятно, изменится, но текст будет по-прежнему здесь по крайней мере.