我正在尝试在我的Django应用程序中添加图像到我的模型中。
models.py
class ImageMain(models.Model):
product = models.ForeignKey(Product)
photo = models.ImageField(upload_to='products')
在开发模式下,每次我尝试通过Django admin上传图像时,我都会收到:
上传有效的镜像。您上载的文件不是图像或图像已损坏。
我通过fink安装了libjpeg,然后在ox X 10.5.7上安装了PIL 1.1.6
from PIL import Image
file = open('/Users/Bryan/work/review_app/media/lcdtvs/samsung_UN46B6000_front.jpg', 'r')
trial_image = Image.open(file)
trial_image.verify()
基于该会话,jpg似乎是有效的。但是,它不会加载。我试过其他的jpgs,它们也不起作用。
会出什么问题呢?
我成功地上传了一个png文件。
发布于 2009-09-09 21:35:09
在系统上编译/安装PIL之后,您是否安装了libjpeg?也许它找不到正确的解码器?
下面是我找到的一组关于如何在MacOS上很好地运行libjpeg和PIL的指令(参见最后;看起来您可能需要显式设置解码器的dir ):
发布于 2010-12-06 20:29:47
我在Ubuntu服务器上遇到了同样的问题,然后你可以通过在PIL之前安装libjpeg-dev来修复它。
sudo apt-get install libjpeg-dev
sudo pip install PIL --upgrade
如果您已经在PIL之后安装了libjpeg-dev。然后您可以先删除PIL,然后尝试重新安装PIL,如下所示。
sudo pip uninstall PIL
sudo apt-get install libjpeg-dev
sudo pip install PIL
它适用于我,也希望它适用于你。
发布于 2012-10-25 00:01:56
注意,对于任何在Ubuntu上使用virtualenv得到这个错误的人来说,this post是很有帮助的。
基本上,Ubuntu将共享对象安装到pip不知道的位置。在本例中,pip期望系统库位于/usr/lib中,但Ubuntu将它们放在/usr/lib/x86_64-linux-gnu或其他依赖于架构的位置。
短期修复方法是简单地将库符号链接到/usr/lib中:
sudo ln -s /usr/lib/x86_64-linux-gnu/libfreetype.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libz.so /usr/lib/
sudo ln -s /usr/lib/x86_64-linux-gnu/libjpeg.so /usr/lib/
这修复了我在Ubuntu 12.04上的错误。
https://stackoverflow.com/questions/1402002
复制相似问题