Python:未安装_imagingft C模块

时间:2010-10-25 03:21:11

标签: python image python-imaging-library

我尝试过很多在网上发布的解决方案,但它们不起作用。

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

所以系统可以找到_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")

14 个答案:

答案 0 :(得分:75)

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

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

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

您也可以考虑安装枕头而不是pil,我认为它与API兼容:https://python-pillow.org

答案 1 :(得分:56)

您安装的PIL是在没有libfreetype的情况下编译的。

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

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

答案 2 :(得分:16)

CentOS 6的解决方案(可能还有其他基于rpm的):

yum install freetype-devel libjpeg-devel libpng-devel

pip uninstall pil Pillow
pip install pil Pillow

答案 3 :(得分:14)

在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

答案 4 :(得分:12)

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

如果你在OS X上使用Homebrew,那只需要:

brew remove pil
brew install freetype
brew install pil

答案 5 :(得分:12)

为Ubuntu 12.10工作:

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

答案 6 :(得分:2)

对于OS X(我运行10.6但应该适用于其他人)我能够使用来自this post的建议来解决这个错误。基本上你需要安装几个依赖项然后重新安装PIL。

答案 7 :(得分:2)

以下是关于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图像时它仍然无效,请检查python路径!!
我的python路径错过'/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/

然后,最后,它有效!!

答案 8 :(得分:2)

对我来说,迄今为止发布的解决方案都没有奏效。我在这里找到了另一个解决方案: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

然后创建一些符号链接:

$ 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

答案 9 :(得分:1)

Ubuntu 11.10按照多拱规范(例如/usr/lib/i386-linux-gnu)安装zlib和freetype2库。您可以使用PIL设置环境变量,以便它们可以找到它们。但它仅适用于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

由于您的多拱路径可能不同(x86-64),因此最好安装-dev个包并使用pkg-config来检索正确的路径。

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

Barry在Pillow的setup.py上给出的另一种方法是使用dpkg-architecture -qDEB_HOST_MULTIARCH来获取正确的库目录后缀。

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

答案 10 :(得分:1)

我用homebrew安装freetype,我在/ usr / local / lib中有以下内容:

libfreetype.6.dylib libfreetype.a libfreetype.dylib

但平时:

  

pip install pil

对我不起作用,所以我用过:

  

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

答案 11 :(得分:1)

在我的Mac中,终端中的以下步骤有效:

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

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

答案 12 :(得分:0)

代替运行:pip install Pillow

运行:pip install Image

达尔文大苏尔pyenv

答案 13 :(得分:-1)

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