16

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

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

其中 requirements.txt 包含:

pil

我目前可以上传 png 图像,但不能上传 jpeg 图像。从网上阅读看来我可能需要 libjpeg 解码器?我是否错误地安装了 pil?在带有 libjpeg 的虚拟环境中为 django 安装 pil 的正确方法是什么?

4

6 回答 6

14

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

    JPEG_ROOT = None 

变成

JPEG_ROOT = libinclude("/usr/lib") 

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

 pip install --no-install PIL

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

 pip install PIL

你可以在我的博客中找到更多信息

你也可以试试枕头,它似乎做得很好,而且很少麻烦(点安装枕头)

于 2011-09-23T12:33:24.650 回答
10

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

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
于 2012-07-29T09:42:34.843 回答
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

于 2012-01-19T21:36:50.873 回答
6

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

用于 OSX 的 libpng 和 libjpeg

因为我已经安装了 PIL(通过 virtualenv 上的 pip),所以我运行了:

pip uninstall PIL
pip install PIL --upgrade

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

于 2012-10-30T16:35:02.810 回答
3

您必须安装库:

sudo aptitude install libjpeg62 libjpeg62-dev zlib1g-dev
于 2010-12-14T14:17:40.910 回答
1

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

于 2014-02-06T19:13:24.787 回答