已安装PIL,但Django ImageField无法使用

-1 投票
1 回答
1133 浏览
提问于 2025-04-17 18:16
(env)user@user:~/job/django/webr$ sudo pip install PIL
Requirement already satisfied (use --upgrade to upgrade): PIL in /usr/lib/python2.7/dist-packages/PIL
Cleaning up...

但是如果我运行 syncdb,我得到了:

命令错误:一个或多个模型没有通过验证:content.desing: "img": 要使用 ImageFields,你需要安装 Python 图像库。可以在这里获取:http://www.pythonware.com/products/pil/

我使用的是 django 1.5。出什么问题了?

class Design(models.Model):
    title = models.CharField(max_length=255)
    desc = models.TextField()
    img = models.ImageField(upload_to="project_images")

1 个回答

1

听起来你可能没有为运行 Django 的 Python 安装 PIL。我看到你在某个地方安装了 PIL,但是用的是 sudo 命令,而你又在一个 virtualenv 环境中,这样就会让事情变得有点复杂,因为缺少一些信息。

首先,检查一下你是否真的安装了 PIL,还有你正在使用哪个 Python。

 $ which python
 /path/to/env/python

 $ pip freeze   # note NO sudo

这应该会列出 PIL

 $ python -c "import Image"

这应该不会返回任何错误。

然后,确保调用 django 的 Python 和上面步骤中使用的是同一个。

 $ python manage.py shell
 >>> import Image

如果这些步骤中的任何一个出现错误,那你就离找到问题更近一步了。

撰写回答