我尝试在我的Django应用程序中使用PIL进行一些JPEG处理,但是我遇到了这个IOError..不确定该怎么办。
""decoder jpeg not available""
我是否缺少服务器上的JPEG解码器?如果是这样,我该怎么修复它?
我尝试在我的Django应用程序中使用PIL进行一些JPEG处理,但是我遇到了这个IOError..不确定该怎么办。
""decoder jpeg not available""
我是否缺少服务器上的JPEG解码器?如果是这样,我该怎么修复它?
我从作者"edward"那里找到了这个答案
在Ubuntu Precise版本中,即使安装了jpeg库文件,PIL也无法找到它们。最简单的解决方法是在安装了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和命令行工具。 阅读如何安装
sudo ln -s /usr/lib/i386-linux-gnu/libjpeg.so /usr/lib
对我来说起到了作用。 - Nathan Kellerbrew install libjpeg
,然后按照上述说明重新安装PIL即可开始工作。 - Craig Labenz您需要先安装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
更为详尽的答案可以在在virtualenv中使用libjpeg安装PIL找到。
对于我在Ubuntu上的解决方法是:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL
Python Imaging Library (PIL) 对JPEG库的版本和位置非常挑剔。因为PIL是用C语言编写并编译的,所以您需要除运行时版本外还需要开发版本的库。
pip uninstall Pillow
sudo apt-get install libjpeg8-dev
pip install Pillow
这对我来说有效。 - Moreno我没有sudo权限,因为我在一个共享的bluehost服务器上。所以我不能运行任何sudo apt-get jpeg命令。我最终运行了
pip uninstall pil
pip install pillow
显然,Pillow 能够支持 JPEG 格式。
IOError: decoder jpeg not available
的问题。 - AJPpython 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
--------------------------------------------------------------------
yum install libjpeg-devel
yum install freetype-devel
yum install libpng-devel
对于Mac用户,您可以从这里下载库:http://ethan.tira-thompson.com/Mac_OS_X_Ports.html。然后,卸载并安装PIL。
在Debian发行版中,使用libjpeg62-turbo-dev而不是libjpeg8-dev