Ошибка установки 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".
К тому времени, когда вы прочитаете это, страница, вероятно, изменится, но текст все равно будет здесь, по крайней мере.