安装 PIL 时出现 "TICKETS-1 - No JPEG/PNG support" 错误。

29

我正在使用Ubuntu和VirtualEnv进行Django项目开发。

我已经通过Synaptic包管理器安装了PIL库,并且它可以正常工作。但是,当我创建一个VirtualEnv并尝试使用pip安装PIL时,它会安装成功,但是我会遇到奇怪的行为:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
              [GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
我希望我可以使用requirements.txt来管理我的所有依赖项,但可能需要手动安装PIL...但是如何安装?
编辑:谢谢John Keyes,你是对的,我运行了:
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/

再次尝试安装PIL后,我得到了以下结果:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.1+ (r271:86832, Apr 11 2011, 18:13:53)
              [GCC 4.5.2]
--------------------------------------------------------------------
*** TKINTER support not available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
-    -------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.

编辑:您可能需要安装 libfreetype6-dev libjpeg8-dev

编辑:另一个好选择是使用Pillow而不是PIL

3个回答

9

6

如果您正在使用virtualenv,您不需要创建系统级别的符号链接,这是一个通用的解决方法,适用于任何架构:

ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libz.so $VIRTUAL_ENV/lib/
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libfreetype.so $VIRTUAL_ENV/lib/
ln -s /usr/lib/`dpkg-architecture -qDEB_HOST_MULTIARCH`/libjpeg.so $VIRTUAL_ENV/lib/

您需要在激活的virtualenv shell会话中执行这些行,符号链接将创建在您的virtualenv lib目录内。

命令dpkg-architecture -qDEB_HOST_MULTIARCH 用于检测主系统库目录(uname -i 不可靠)。而环境变量$VIRTUAL_ENV则由 virtualenv 的 activate 脚本设置。


5
我们似乎找到了一个解决方案(在PIL 1.7.7时),首先卸载PIL,然后卸载Pillow,最后使用pip install pillow --upgrade进行安装更新即可。当然,您需要已安装libjpeg8-dev。

想必这个链接会很有用:http://pythonadventures.wordpress.com/2013/05/19/problems-with-pil-use-pillow-instead/ - user2290820

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接