在Mac OS X 10.9上使用pip安装Python Image Library时出错

时间:2013-12-02 10:01:29

标签: python macos pip

我想使用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

我的命令行工具已安装并且是最新的,我找到的每个提示都没有帮助。 我怎样才能编译它?

编辑:我刚检查过,freetype也已经通过自制软件安装了

11 个答案:

答案 0 :(得分:210)

不要将符号链接到特定版本的freetype2,而是执行以下操作:

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

这样可以省去每次升级freetype2时重新创建符号链接的麻烦。

答案 1 :(得分:31)

使用macports,这个解决方案对我有用:

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

然后重新运行PIL构建过程。

答案 2 :(得分:28)

我用这个符号链接解决了这个问题:

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

我已经通过自制软件安装了freetype。

答案 3 :(得分:5)

这是由freetype&gt; = 2.1.5的标头更改引起的。 PIL没有使用正确的文档方式来包含freetype标头,这导致构建失败,因为freetype最终删除了包含标头的长期不赞成的方式。这个问题记录在http://freetype.sourceforge.net/freetype2/docs/tutorial/step1.html的顶部:

  

注意:从FreeType 2.1.6开始,不再支持旧的头文件包含方案。这意味着如果您执行以下操作,现在会出现错误:

     

#include&lt; freetype / freetype.h&gt;
  #include&lt; freetype / ftglyph.h&gt;

请将此问题向上游发送给PIL的开发人员,并建议他们使用包含freetype标头的文档化方法:

#include <ft2build.h>
#include FT_ERRORS_H

答案 4 :(得分:4)

经过多次尝试,我解决了在没有freetype支持的情况下编译PIL的问题。要做到这一点,我只需使用brew unlink freetype然后pip install PIL==1.1.7取消与$ PATH的关联。

答案 5 :(得分:3)

我刚刚使用this Stackoverflow答案中描述的步骤解决了这个问题。 似乎这是Xcode在异常位置安装freetype的错误。

答案 6 :(得分:3)

使用Pillow解决此问题&#34;对于真实&#34;:

您可以在哪里报告问题并及时查看问题:

答案 7 :(得分:2)

在我的OSx中,我在.h目录中找到了/opt/local/include/freetype2文件。做,我输入

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

它有效

也许最好的方法是将/opt/local/include添加到您的战队的包含路径中。

答案 8 :(得分:1)

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

答案 9 :(得分:0)

我正在使用Arch Linux并遇到了这个问题。在我的情况下,必须从https://pypi.python.org/pypi/Pillow/2.2.1#downloads手动下载并解压缩zip文件。然后,我编辑了文件_imagingft.c,将包含路径从freetype/fterrors.h更改为fterrors.h,因为freetype没有/usr/include/freetype2子目录fterrors.h位于。最后python setup.py install工作正常。

编辑:我应该提到这是安装Pillow的解决方案,而不是PIL,但Pillow只是PIL的一个分支,它可能仍然适用于有这个问题的其他人。

答案 10 :(得分:0)

如果你仍然在寻找像我读完这个和其他谷歌搜索后的答案,你可能会有兴趣看到这个:

警告

Pillow&gt; = 2.1.0不再支持“import _imaging”。请使用“从PIL.Image导入核心作为_imaging”。

来自here

当你读到这篇文章时,页面可能已经改变,但文本至少仍然在这里。