Django / PIL错误 - 渲染时捕获异常:未安装_imagingft C模块

时间:2010-03-19 14:43:28

标签: python django macos python-imaging-library

我正在尝试在我的机器上运行一个webapp / site,它在OSX 10.6.2上运行,我遇到了一些问题:

Caught an exeption while rending: The _imagingft C module is not installed

在python中执行import _imagingft给了我:

>>> import _imagingft
Traceback (most recent call last):
 File "<stdin>", line 1, in <module>
ImportError: dlopen(/Library/Python/2.6/site-packages/PIL/_imagingft.so,
2): Symbol not found: _FT_Done_Face
 Referenced from: /Library/Python/2.6/site-packages/PIL/_imagingft.so
 Expected in: flat namespace
 in /Library/Python/2.6/site-packages/PIL/_imagingft.so

似乎Freetype库是有问题的。到目前为止,在安装PIL或编译(?)jpeg和freetype库时到目前为止没有错误。

我在django 1.1.1,python 2.6.2。

5 个答案:

答案 0 :(得分:9)

在(重新)安装PIL之前,添加以下sysmlinks以在Mac 10.6 Snow Leopard上启用freetype:

ln -s /usr/X11/include/freetype2 /usr/local/include/
ln -s /usr/X11/include/ft2build.h /usr/local/include/
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/
ln -s /usr/X11/lib/libfreetype.6.dylib /usr/local/lib/libfreetype.dylib

答案 1 :(得分:3)

我也遇到过这个问题。无法使用PIL 1.1.6或PIL 1.1.7解决它。我从ports和presto安装了py26-pil,它可以工作。

sudo port install py26-pil

如果您没有端口,请转到http://www.macports.org/

答案 2 :(得分:2)

我找到了解决方案。

首先,你需要下载 Freetype2 http://freetype.sourceforge.net/index2.html并使用这些说明http://www.libgd.org/DOC_INSTALL_OSX#Building_freetype2进行编译然后你去编译 libjpeg PIL http://fightingrabbits.com/archives/266

就是这样。

答案 3 :(得分:1)

错误就像通常因为其中一个PIL依赖项没有编译成通用二进制文件。

试试这个:

  1. this website
  2. 下载Freetype框架
  3. this website
  4. 下载libjpeg8的软件包
  5. 删除最初为libjpeg和freetype
  6. 安装的文件
  7. 安装新软件包
  8. 删除PIL的构建文件夹
  9. 重新构建并安装PIL
  10. 但是如果你想先尝试编译通用二进制文件,请成为我的访客。我的具体问题实际上是libjpeg,无论我如何编译它,PIL都在import _imaging上进行抨击。所以我选择了打包版本。我不认为libjpeg或freetype特别受益于自己编译它们。

    libjpeg8包安装到/ usr / local / lib

    freetype包安装到您的/ Library / Frameworks文件夹。

答案 4 :(得分:0)

使用easy_install构建OS X PIL \ libjpeg二进制文件时未正确设置环境。本指南应该有帮助http://fightingrabbits.com/archives/266 - 它是用于安装Python / Django但是先完成必要的PIL设置并在10.6.x上为我工作