使用libjpeg在virtualenv上安装pil

时间:2010-12-14 01:05:51

标签: django python-imaging-library virtualenv pip

目前我正在将PIL安装到我的虚拟环境中,如下所示:

pip install -E . -r ./releases/%s/requirements.txt

其中requirements.txt包含:

pil

我目前可以上传png图片但不能上传jpeg图片。从网上阅读看来我可能需要libjpeg解码器?我安装pil不正确吗?使用libjpeg在虚拟环境中为django安装pil的正确方法是什么?

6 个答案:

答案 0 :(得分:14)

您应该安装其他人推荐的库,但最重要的是,您应该告诉PIL在哪里找到它们。编辑setup.py以便

    JPEG_ROOT = None 

成为

JPEG_ROOT = libinclude("/usr/lib") 

我发现最简单的方法是使用pip下载源代码但不安装:

 pip install --no-install PIL

编辑设置(在虚拟环境的构建目录内)和安装

 pip install PIL

您可以在我的blog

中找到更多信息

你也可以试试pillow这似乎做得很好而且很麻烦(pip安装枕头)

答案 1 :(得分:10)

在Ubuntu上,PIL没有找到jpeg库文件,即使它们已经安装完毕。解决此问题的最简单方法是在安装jpeg dev软件包后创建符号链接。 所以,我需要一个额外的步骤:

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

答案 2 :(得分:8)

对于Ubuntu 11.04,最终对我有用的是:

pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL

Python Imaging Library(PIL)似乎对jpeg库的版本和位置非常挑剔。由于PIL是用C编写并编译的,因此除了运行时版本之外,还需要库的 开发 版本。

情况非常糟糕,社区分叉PIL创建一个更柔软的版本:枕头:     http://pypi.python.org/pypi/Pillow#why-a-fork

答案 3 :(得分:6)

在OSX上,我使用以下二进制文件来同时在系统范围内安装libpng和libjpeg:

libpng & libjpeg for OSX

因为我已经安装了PIL(通过virtualenv上的pip),我跑了:

pip uninstall PIL
pip install PIL --upgrade

这为我解决了decoder JPEG not available错误。

答案 4 :(得分:3)

您必须安装库:

sudo aptitude install libjpeg62 libjpeg62-dev zlib1g-dev

答案 5 :(得分:1)

如果pip引发错误,请尝试     easy_install PIL