我尝试使用 PIL 在我的 django 应用程序中使用 PIL 做一些 JPEG 工作,但我得到了这个 IOError .. 不知道该怎么做。
""decoder jpeg not available""
我是否缺少服务器上的 JPEG 解码器?如果是这样,我该如何解决?
我尝试使用 PIL 在我的 django 应用程序中使用 PIL 做一些 JPEG 工作,但我得到了这个 IOError .. 不知道该怎么做。
""decoder jpeg not available""
我是否缺少服务器上的 JPEG 解码器?如果是这样,我该如何解决?
我从作者“edward”那里找到了这个答案
在 Ubuntu 上,PIL 找不到 jpeg 库文件,即使它们已安装。解决此问题的最简单方法是在安装 jpeg 开发包后创建符号链接。所以,我需要一个额外的步骤:
对于 x64 操作系统
pip uninstall PIL
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib
pip install PIL
对于 x32 操作系统
pip uninstall PIL
sudo apt-get install libjpeg8-dev
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
pip install PIL
我确认这在 Ubuntu Linux 12.04 上对我有用。
如果您是Mac用户 - 您需要安装 Xcode 和命令行工具。阅读如何做到这一点
您需要先安装 jpeg 库并重新安装您的 PIL。例如,我使用 CentOS,要安装 libjpeg,我运行
sudo yum install -y libjpeg-devel
这取决于您使用的是哪种 linux。在这里你必须删除旧的 PIL
rm -rf /usr/lib/python2.6/site-packages/PIL-1.1.7-py2.6-linux-x86_64.egg/
然后安装 PIL
sudo easy_install PIL
可以在使用 libjpeg 在 virtualenv 上安装 pil找到更强有力的答案
对我来说,最终在 Ubutu 上起作用的是:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL
Python Imaging Library (PIL) 似乎对 jpeg 库的版本和位置非常挑剔。由于 PIL 是用 C 编写并编译的,因此除了运行时版本之外,您还需要库的开发版本。
我没有 sudo 权限,因为我在共享 bluehost 服务器上。所以我无法运行任何这些 sudo apt-get jpeg 命令。我最终跑了
pip uninstall pil
pip install pillow
显然枕头能够找到对 jpeg 的支持。
对于 mac 的用户,您可以从这里下载库: http: //ethan.tira-thompson.com/Mac_OS_X_Ports.html。然后,卸载并安装 PIL
您的 Imaging 安装文件夹中有一个 selftest.py,请尝试:
python selftest.py
你会看到类似的东西:
--------------------------------------------------------------------
*** PIL CORE support not installed
*** TKINTER support not installed
--- JPEG support ok
--- ZLIB (PNG/ZIP) support ok
*** FREETYPE2 support not installed
*** LITTLECMS support not installed
--------------------------------------------------------------------
如果 JPEG 支持不可用,Centos:
yum install libjpeg-devel
yum install freetype-devel
yum install libpng-devel
您可以从源代码构建 PIL:http: //effbot.org/zone/pil-decoder-jpeg-not-available.htm
在 Debian 发行版上使用 libjpeg62-turbo-dev 而不是 libjpeg8-dev