已安装PIL,但Django ImageField无法使用
(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
如果这些步骤中的任何一个出现错误,那你就离找到问题更近一步了。