在Mac OS X 10.9上使用pip安装Python图像库时出错
我想用PIP在Mavericks上安装PIL,但是得到这个错误。
_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
我的命令行工具已安装并且是最新的,我find的每个提示都没有帮助。 我怎样才能得到这个编译?
编辑:我只是检查,freetype也已经安装通过自制软件
而不是符号链接到特定版本的freetype2,请执行以下操作:
ln -s /usr/local/include/freetype2 /usr/local/include/freetype
这为您节省了升级freetype2时重新创build符号链接的麻烦。
用macports,这个解决scheme对我来说很有效:
sudo port install freetype sudo ln -s /opt/local/include/freetype2 /opt/local/include/freetype
然后重新运行PIL构build过程。
我用这个符号链接解决了这个问题:
ln -s /usr/local/Cellar/freetype/2.5.1/include/freetype2 /usr/local/include/freetype
我已经通过自制软件安装了freetype。
这是由freetype> = 2.1.5的标题中的更改引起的。 PIL没有使用正确的logging方式来包含freetype头文件,这会导致构build失败,现在freetype最终删除了包含头文件的长期弃用的方式。 这个问题被logging在http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html的顶部:;
注:从FreeType 2.1.6开始,不再支持旧的头文件包含scheme。 这意味着如果你做了如下的事情,你现在得到一个错误:
#include <freetype / freetype.h>
#include <freetype / ftglyph.h>
请将此问题向上游发送给PIL的开发人员,并build议他们使用包含freetype头文件的文档方式:
#include <ft2build.h>
#include FT_ERRORS_H
经过多次尝试,我解决了这个问题编译PIL没有freetype支持。 要做到这一点,我只是从我的$ PATH brew unlink freetype
使用brew unlink freetype
,然后, pip install PIL==1.1.7
。
我刚刚解决这个使用此 Stackoverflow答案中描述的步骤。 看来这是Xcode在奇怪的位置安装freetype的错误。
使用枕头 ,这个问题是固定的“真实”:
在哪里可以报告问题并及时查看问题:
在我的OSx中,我在/opt/local/include/freetype2
direcoty中find了.h
文件。 所以,我input
sudo ln -s /opt/local/include/freetype2/ /usr/local/include/freetype
有用
也许最好的方法是将/opt/local/include
到你的包含path中。
osx约塞米蒂,这工作对我来说:
(的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,并有此问题。 在我的情况下,必须手动下载并从https://pypi.python.org/pypi/Pillow/2.2.1#downloads解压zip文件。; 然后,我编辑了文件_imagingft.c
,将包含path从freetype/fterrors.h
为fterrors.h
因为没有findfterrors.h
所在的/usr/include/freetype2
freetype
子目录。 最后python setup.py install
工作正常。
编辑:我应该提到这是安装枕头的解决scheme,而不是PIL,但枕头只是PIL的一个分支,它可能仍然适用于此问题的其他人。
如果您在阅读本文和其他Googlesearch结果后仍然在寻找答案,则可能有兴趣了解下列信息:
警告
枕头> = 2.1.0不再支持“导入_图像”。 请使用“从PIL.Image导入核心作为_imaging”来代替。
从这里
当你阅读这篇文章时,页面可能会发生变化,但文本至less还会在这里。