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