Python:_imagingft C模块没有安装

我已经尝试了很多在网上发布的解决scheme,他们不工作。

>>> import _imaging >>> _imaging.__file__ 'C:\\python26\\lib\\site-packages\\PIL\\_imaging.pyd' >>> 

所以系统可以find_imaging,但是仍然不能使用truetype字体

 from PIL import Image, ImageDraw, ImageFilter, ImageFont im = Image.new('RGB', (300,300), 'white') draw = ImageDraw.Draw(im) font = ImageFont.truetype('arial.ttf', 14) draw.text((100,100), 'test text', font = font) 

引发这个错误:

 ImportError: The _imagingft C module is not installed File "D:\Python26\Lib\site-packages\PIL\ImageFont.py", line 34, in __getattr__ raise ImportError("The _imagingft C module is not installed") 

您安装的PIL编译时不使用libfreetype。

你可以在这里(和许多其他预编译的Python C模块)获得预编译的PIL安装程序(用libfreetype编译):

http://www.lfd.uci.edu/~gohlke/pythonlibs/

在Ubuntu上,编译PIL之前需要安装libfreetype-dev。

 $ sudo apt-get install libfreetype6-dev $ sudo -s \# pip uninstall pil \# pip install pil 

PS! 以sudo运行pip安装通常会在大多数Ubuntu版本上安装软件包到/ usr / local / lib。 您可以考虑在用户拥有的path中将Pil安装在虚拟环境(virtualenv或venv)中。

你也可以考虑安装枕头,而不是pil,我相信它是API兼容的: https : //python-pillow.org 。

以下在Ubuntu 14.04.1 64位上为我工作:

 sudo apt-get install libfreetype6-dev 

然后,在virtualenv:

 pip uninstall pillow pip install --no-cache-dir pillow 

针对CentOS 6的解决scheme(可能还有其他基于rpm的):

 yum install freetype-devel libjpeg-devel libpng-devel pip uninstall pil Pillow pip install pil Pillow 

在OS X中,我这样做是为了解决这个问题:

 pip uninstall PIL 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 pip install PIL 

基本上,你需要在安装PIL之前安装freetype。

如果你在OS X上使用Homebrew ,那只是一个问题:

 brew remove pil brew install freetype brew install pil 

为Ubuntu 12.10工作:

 sudo pip uninstall PIL sudo apt-get install libfreetype6-dev sudo apt-get install python-imaging 

对于OS X(我正在运行10.6,但应该为其他人)我能够解决这个错误使用这个职位的build议。 基本上你需要安装一些依赖,然后重新安装PIL。

对我而言,迄今为止在这里发布的解决scheme都没有奏效。 我在这里find了另一个解决scheme: http : //codeinthehole.com/writing/how-to-install-pil-on-64-bit-ubuntu-1204/

首先安装开发包:

 $ sudo apt-get install python-dev libjpeg-dev libfreetype6-dev zlib1g-dev 

然后创build一些符号链接:

 $ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/ $ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/ $ sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/ 

之后PIL应该编译得很好:

 $ pip install PIL --upgrade 

接下来的作品在Ubuntu 12.04上:

 pip uninstall PIL apt-get install libjpeg-dev apt-get install libfreetype6-dev apt-get install zlib1g-dev apt-get install libpng12-dev pip install PIL --upgrade 

当你看到“ – JPEG支持可用”,这意味着它的作品。

但是,如果编辑jpeg图像时仍不起作用,请检查pythonpath!
我的pythonpath错过了'/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/' ,所以我编辑~/.bashrc添加如下代码到这个文件:

 export PYTHONPATH=$PYTHONPATH:/usr/local/lib/python2.7/dist-packages/PIL-1.1.7-py2.7-linux-x86_64.egg/ 

那么,最后,它的作品!

我用自制软件来安装freetype,我在/ usr / local / lib中有以下内容:

libfreetype.6.dylib libfreetype.a libfreetype.dylib

但通常情况下:

pip安装pil

不适合我,所以我用:

pip安装http://effbot.org/downloads/Imaging-1.1.6.tar.gz

在我的Mac中,terminal的以下步骤工作:

 $ brew install freetype $ sudo pip uninstall pil $ sudo pip install pillow 

希望它适合你。 祝你好运!

Ubuntu 11.10按照多拱形规范(例如/usr/lib/i386-linux-gnu )安装zlib和freetype2库。 您可以使用PIL设置环境variables,以便可以find它们。 但是它只能在pil-117标签之外的PIL版本上运行。

 export PIL_SETUP_ZLIB_ROOT=/usr/lib/i386-linux-gnu export PIL_SETUP_FREETYPE_ROOT=/usr/lib/i386-linux-gnu pip install -U PIL 

由于您的多拱path可能不同(x86-64),所以最好安装-dev软件包并使用pkg-config来检索正确的path。

 pkg-config --variable=libdir zlib pkg-config --variable=libdir freetype2 

Barry on Pillow的setup.py提供的另一种方法是使用dpkg-architecture -qDEB_HOST_MULTIARCH来获得适当的库目录后缀。

请参阅https://bitbucket.org/effbot/pil-2009-raclette/issue/18

【解决了】
在我的Ubuntu12.04中,我使用apt-get安装了python-imaging之后,它可以正常工作。