使用ubuntu 13.10,python 2.7.5:
>>> import _imaging, Image
>>> from PIL import Image, ImageDraw, ImageFilter, ImageFont
>>> im = Image.new('RGB', (300,300), 'white')
>>> draw = ImageDraw.Draw(im)
>>> font = ImageFont.truetype('arial.ttf', 14)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 218, in truetype
return FreeTypeFont(filename, size, index, encoding)
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 134, in __init__
self.font = core.getfont(file, size, index, encoding)
File "/usr/local/lib/python2.7/dist-packages/PIL/ImageFont.py", line 34, in __getattr__
raise ImportError("The _imagingft C module is not installed")
**ImportError: The _imagingft C module is not installed**
>>>
那么为什么会这样呢?我该如何解决?我按照this thread底部的以下说明进行了操作:
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
但在升级PIL时,看看我看到的内容:
--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version 1.1.7
platform linux2 2.7.5+ (default, Sep 19 2013, 13:48:49)
[GCC 4.8.1]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
支持所有这些 不 项目是否正常?我该如何解决这个问题?
答案 0 :(得分:9)
PIL
基本上已经死了,前叉Pillow
就是你应该使用的。您需要通过
from PIL import Image, ...
它维护PIL
的所有功能,并添加了更多功能,包括Python 3兼容性。此外,它正在积极开发中,与PIL
不同,因此您发现的任何错误实际上都有可能得到修复 - 与功能请求相同。
您可以通过运行
安装它(在卸载PIL
之后)
pip install Pillow
我相信Ubuntu有一个软件包,但我的VM目前让我头疼,我无法检查......
答案 1 :(得分:2)
事实证明,APT安装将库放在/ usr / lib / x86_64-linux-gnu下,PIL将在/ usr / lib /中搜索它们。所以你必须为PIL创建符号链接才能看到它们。
换句话说,PIL显然不了解现代Ubuntu,或者实际上大多数64位linux。
您可能想要做的是:
python-imaging
),而不是尝试通过pip
进行安装,或检查packages.ubuntu.com,python-imaging
包实际上是Saucy(13.10)上的Pillow 2.0.0。事实上,它是任何Raring或更晚的枕头;只有人们仍然使用12.x或更早版本而被PIL
困住的人。所以,如果你这样做:
$ sudo pip uninstall PIL
$ sudo apt-get install python-imaging
...它会让你获得Pillow,并且只需一步即可完成所需的任何依赖。
如果你不想做任何这些,你应该首先重新考虑这个决定,因为这可能是一个错误,然后看看那个答案所建议的解决方法。特别是,您安装到/ usr / lib目录中的库的符号链接可能就是您所需要的。所以,例如:
$ sudo pip uninstall PIL
$ sudo apt-get install libjpeg-dev
$ sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/libjpeg.so
$ # repeat for the various other libraries, but JPEG is the one you asked about
$ sudo pip install PIL
或者,您可以修补PIL本身,因为链接问题的一些答案显示。特别是,添加以下两行:
add_directory(library_dirs, "/usr/lib/x86_64-linux-gnu")
add_directory(library_dirs, "/lib/x86_64-linux-gnu")
...添加/usr/local/lib
和/usr/lib
后的行。
但是,如果您打算使用修补后的PIL,为什么不使用Pillow,它已经解决了这个问题以及其他许多问题?
答案 2 :(得分:0)
在Mac OS X上,您通常会安装其他软件,例如 使用“fink”工具的libjpeg或freetype,然后它最终进入 “/ SW”。如果您已在其他地方安装了库,则可能有 在构建之前调整“setup.py”文件。
在Windows上,您需要调整“setup.py”中的ROOT设置 文件,使其找到外部库。见评论 文件了解详情。
确保使用相同的内容构建PIL和外部库 用于Python解释器的运行时链接选项 (通常是/ MD,在Visual Studio下)。
请注意,Windows的大多数Python发行版都包含库 为Microsoft Visual Studio编译。你可以获得免费的快递 Visual Studio版本:
http://www.microsoft.com/Express/
要使用其他工具链构建扩展程序,请参阅“使用” Windows上的非Microsoft编译器“distutils手册中的部分:
http://www.python.org/doc/current/inst/non-ms-compilers.html
有关如何使用the构建扩展的其他信息 流行的MinGW编译器,请参阅:
http://mingw.org (compiler)
http://sebsauvage.net/python/mingw.html (build instructions)
http://sourceforge.net/projects/gnuwin32 (prebuilt libraries)