通过Apache在Django中无法识别枕头安装

时间:2015-01-02 19:18:41

标签: django apache pillow

当通过Apache wsgi部署我的项目时,在Ubuntu Server VM上使用virtualenv,我在/var/log/apache2/error.log上出现以下错误:

ImportError: Photologue was unable to import Python Imaging Library. Please confirm it's installed and available on your current Python path.

设置:

Django==1.6.6
django-photologue==2.3
Pillow==2.5.1

但是,我已经能够在Ubuntu Desktop VM中运行具有相同配置的项目(用于开发)。对于Ubuntu Server VM,我遵循相同的步骤:

  1. 通过apt-get
  2. 安装相关图像库(libjpeg8-dev等)
  3. pip install pillow,在virtualenv中,它显示--- JPEG支持
  4. 这没有问题:
    • manage.py shell
    • 来自PIL import Image
    • im = Image.open(" file.jpg")
    • im.show()
  5. 使用django的服务器没有问题,它显示了登录界面:
    • manage.py runserver
  6. 为了理智,我卸载了枕头,运行manage.py runserver显示了相同的导入错误。我重新安装了枕头,错误在django服务器中消失了
  7. 现在,当我尝试通过apache访问浏览器上的网站时出现问题。我转到服务器名称以获取实际的django网站,并在浏览器上获得500内部服务器错误,并在apache日志上导入错误。

    我唯一能想到的是,在manage.py shell中我无法做到"导入Image"。但是,photologue有一个try / except导入,它将从PIL导入Image"如果是"导入图像"例外,则涵盖了这种情况。

1 个答案:

答案 0 :(得分:1)

我找到答案,在此发布,因为它并不完全明显。

这是一个更微妙的案例,PIL无法链接到apt-get中的目录。 ubuntu forums的答案解决了这个问题。

sudo ln -s /lib/x86_64-linux-gnu/libz.so.1 /lib/
sudo ln - /usr/lib/x86_64-linux-gnu/libfreetype.so.6 /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so.62 /usr/lib/

然而,我无法用枕头运行django proyect。我不得不使用PIL,这很烦人:

pip uninstall pillow
pip install PIL --allow-external PIL --allow-unverified PIL
相关问题