我正在运行Django 1.4
并PIL 1.1.7
在virtualenv
管理中使用pip
. 每当我通过管理界面上传 JPEG 文件时,都会收到以下错误:Upload a valid image. The file you uploaded was either not an image or a corrupted image.
正如许多 Ubuntu 用户所报告的那样,在安装时,PIL 错误地查找了/usr/lib/
. libjpeg
,而它的真实位置在/usr/lib/i386-linux-gnu/
. 已经处理好了;我遵循了这些帖子中的答案:
Django ImageField“上传一个有效的图像。您上传的文件不是图像或损坏的图像。”
为什么我不能通过 admin/ 将 jpg 文件上传到我的 Django 应用程序?
现在安装的最终输出如下所示:
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 available
--- JPEG support available
--- ZLIB (PNG/ZIP) support available
--- FREETYPE2 support available
*** LITTLECMS support not available
--------------------------------------------------------------------
To add a missing option, make sure you have the required
library, and set the corresponding ROOT variable in the
setup.py script.
To check the build, run the selftest.py script.
changing mode of build/scripts-2.7/pilfile.py from 644 to 755
changing mode of build/scripts-2.7/pilfont.py from 644 to 755
changing mode of build/scripts-2.7/pilconvert.py from 644 to 755
changing mode of build/scripts-2.7/pilprint.py from 644 to 755
changing mode of build/scripts-2.7/pildriver.py from 644 to 755
changing mode of /usr/local/bin/pilfile.py to 755
changing mode of /usr/local/bin/pilfont.py to 755
changing mode of /usr/local/bin/pilconvert.py to 755
changing mode of /usr/local/bin/pilprint.py to 755
changing mode of /usr/local/bin/pildriver.py to 755
Successfully installed PIL
但是,Django仍然不允许我上传 BMP 文件以外的任何内容,这对于这个项目是不可接受的。与第二个链接中的用户不同,我没有使用 Apache,所以我的问题可能不相关。我怀疑 Django 仍在使用旧的 PIL 安装。问题是我不知道它是从哪里得到的。中的文件~/.virtualenvs/project/local/lib/python2.7/site-packages
对我来说似乎是最新的。有任何想法吗?
编辑 1:另请注意,我已尝试注销并重新登录管理员,以及安装pillow
,如这篇文章中所示:通过 Django 上传 JPEG 图像显示错误