【问题标题】:Django says all Images invalid, but PIL worksDjango 说所有图片无效,但 PIL 有效
【发布时间】:2012-05-26 09:00:39
【问题描述】:

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

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 结束时的输出。问题是,为什么不提供对无的支持?

【问题讨论】:

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


    【解决方案1】:

    使用以下方法解决: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
    --------------------------------------------------------------------
    

    【讨论】:

      【解决方案2】:

      这是对我有用的解决方案。

      1. 安装以下

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

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

        对于 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
        

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-07-17
        • 1970-01-01
        • 2018-02-05
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-01-06
        相关资源
        最近更新 更多