PIL/JPEG库:“解码器jpeg不可用”
我在我的Django应用里用PIL处理JPEG图片时遇到了一个IOError错误,不知道该怎么办。
""decoder jpeg not available""
是不是我的服务器缺少JPEG解码器?如果是的话,我该怎么解决这个问题呢?
8 个回答
20
更详细的答案可以在这里找到:在虚拟环境中安装PIL和libjpeg
对我来说,在Ubuntu上最终有效的方法是:
pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL
Python图像库(PIL)对jpeg库的版本和位置要求非常严格。而且因为PIL是用C语言写的并且是编译过的,所以你除了需要运行时版本的库,还需要它的开发版本。
73
我找到了一位叫“edward”的作者的回答
在Ubuntu精确版上,即使你已经安装了jpeg库,PIL(Python图像库)还是找不到这些库文件。解决这个问题最简单的方法是在安装jpeg开发包后创建一个符号链接。所以,我需要多做一步:
对于64位操作系统
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
对于32位操作系统
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和命令行工具。点击这里了解如何操作
60
你需要先安装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