使用libjpeg在virtualenv上安装pil

pro*_*ock 16 django pip virtualenv python-imaging-library

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

pip install -E . -r ./releases/%s/requirements.txt
Run Code Online (Sandbox Code Playgroud)

其中requirements.txt包含:

pil
Run Code Online (Sandbox Code Playgroud)

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

Dim*_*ris 14

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

    JPEG_ROOT = None 
Run Code Online (Sandbox Code Playgroud)

JPEG_ROOT = libinclude("/usr/lib") 
Run Code Online (Sandbox Code Playgroud)

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

 pip install --no-install PIL
Run Code Online (Sandbox Code Playgroud)

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

 pip install PIL
Run Code Online (Sandbox Code Playgroud)

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

你也可以尝试枕头,似乎做得很好,有点麻烦(pip安装枕头)


edw*_*ard 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
Run Code Online (Sandbox Code Playgroud)


Bry*_*yce 8

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

pip uninstall PIL
sudo apt-get install libjpeg8-dev
pip install PIL
Run Code Online (Sandbox Code Playgroud)

Python Imaging Library(PIL)似乎对jpeg库的版本和位置非常挑剔.并且因为PIL是用C语言编写的,所以除了运行时版本之外,还需要库的开发版本.

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


zea*_*soi 6

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

用于OSX的libpng和libjpeg

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

pip uninstall PIL
pip install PIL --upgrade
Run Code Online (Sandbox Code Playgroud)

这解决了decoder JPEG not available我的错误.