Ошибка установки Python Image Library с помощью 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

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

РЕДАКТИРОВАТЬ: я только что проверил, freetype также уже установлен с помощью homebrew

11 ответов

Решение

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

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

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

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

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

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

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

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

Я уже установил freetype через homebrew.

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

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

#include
#include

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

#include <ft2build.h>
#include FT_ERRORS_H

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

Используйте подушку, где эта проблема исправлена ​​"по-настоящему":

И где вы можете сообщать о проблемах и видеть их устраненными своевременно:

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

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

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

оно работает

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

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

Я использую 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 работал нормально.

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

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

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

Подушка>= 2.1.0 больше не поддерживает "import _imaging". Пожалуйста, используйте "из PIL.Image import core как _imaging".

отсюда

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

Другие вопросы по тегам