Django说所有图像都无效,但PIL有效

时间:2012-05-18 19:16:22

标签: ubuntu nginx python-imaging-library django-models gunicorn

我正在使用Nginx,Gunicorn和Django 1.4在Ubuntu 12.04上运行新的Linode。上传到ima​​gefield(在本地工作)声称文件已损坏或无效,包括本地工作的图像。

PIL有效。我可以加载,检查和收集图像的各种属性。

我也在使用virtualenv。

有什么建议吗?

更多信息:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.3 (default, Apr 20 2012, 22:44:07)
              [GCC 4.6.3]
--------------------------------------------------------------------
*** TKINTER support not available
*** JPEG support not available
*** ZLIB (PNG/ZIP) support not available
*** FREETYPE2 support not available
*** LITTLECMS support not available
--------------------------------------------------------------------

这是在pip install PIL结束时的输出。问题是,为什么没有可用的支持?

2 个答案:

答案 0 :(得分:2)

使用以下内容解决:http://www.sandersnewmedia.com/why/2012/04/16/installing-pil-virtualenv-ubuntu-1204-precise-pangolin/


出于档案目的,该帖子的副本:

以下技术应适用于32位和64位系统。

安装构建依赖项:

sudo apt-get build-dep python-imaging

符号链接库:

sudo ln -s /usr/lib/`uname -i`-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/`uname -i`-linux-gnu/libjpeg.so /usr/lib/
sudo ln -s /usr/lib/`uname -i`-linux-gnu/libz.so /usr/lib/

安装:

pip install PIL

你应该在构建之后看到类似的内容:

--------------------------------------------------------------------
PIL 1.1.7 SETUP SUMMARY
--------------------------------------------------------------------
version       1.1.7
platform      linux2 2.7.3 (default, Apr 10 2012, 22:21:37)
              [GCC 4.6.3]
--------------------------------------------------------------------
--- TKINTER support available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------

答案 1 :(得分:2)

这是适合我的解决方案。

  1. 安装以下

    sudo apt-get install libjpeg62-dev zlib1g-dev libfreetype6-dev
    
  2. 转到您的虚拟环境

    cd ~/.virtualenvs/{env-name}
    
  3. 将libs符号链接到您的环境

    对于32位系统:

    ln -s /usr/lib/i386-linux-gnu/libz.so ./lib/
    ln -s /usr/lib/i386-linux-gnu/libjpeg.so ./lib/
    ln -s /usr/lib/i386-linux-gnu/libfreetype.so ./lib/
    

    对于64位系统:

    ln -s /usr/lib/x86_64-linux-gnu/libz.so ./lib/
    ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so ./lib/
    ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so ./lib/
    
  4. 安装PIL(注意 - 如果已安装,则卸载然后重新安装)

    pip install PIL