我正在使用
然而,Django仍然不允许我上传除BMP文件以外的其他文件,这对于这个项目是不可接受的。与第二个链接中的用户不同,我没有使用Apache,所以我的问题可能与此无关。我怀疑Django仍在使用旧版PIL。问题是我不知道它可能从哪里获取。对我来说,
编辑1:还要注意,我已经尝试退出并重新登录管理员,并安装了
Django 1.4
和PIL 1.1.7
在由pip
管理的virtualenv
中运行。每当我通过我的管理界面上传JPEG文件时,就会出现以下错误:上传有效图像。您上传的文件不是图像或损坏的图像。
正如许多Ubuntu用户所报告的那样,在安装时,PIL错误地在/usr/lib/
中查找libjpeg
,而其真实位置在/usr/lib/i386-linux-gnu/
中。我已经解决了这个问题;我按照这些帖子中的答案进行操作:
Django ImageField "Upload a valid image. The file you uploaded was either not an image or a corrupted image."
Why can't I upload jpg files to my Django app via admin/?
现在安装的最终输出如下: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
,就像在这篇文章中所述:Uploading a JPEG image via Django displays error。
manage.py shell
并尝试类似于import Image; im = Image.open("file.jpg"); im.show()
的操作,以查看其是否有效。 - jterrace>>> import Image
>>> Image.__file__
'/usr/lib/python2.6/site-packages/PIL/Image.pyc'
查看你正在导入哪一个。 - Meitham