我已经安装了PIL,但是每当我尝试通过Django Admin为我的模型上传.png文件到图像字段时,就会出现以下错误:
"上传有效的图像。您上传的文件不是图像或损坏的图像。"
其他图像类型可以正常工作。我尝试了几个不同的PNG文件。
我尝试在安装pypng、libpng-dev等之后重新构建PIL,而且我使用的是Ubuntu服务器。
我已经安装了PIL,但是每当我尝试通过Django Admin为我的模型上传.png文件到图像字段时,就会出现以下错误:
"上传有效的图像。您上传的文件不是图像或损坏的图像。"
其他图像类型可以正常工作。我尝试了几个不同的PNG文件。
我尝试在安装pypng、libpng-dev等之后重新构建PIL,而且我使用的是Ubuntu服务器。
通过使用pip安装"pillow"而不是"pil"解决了这个问题,从而可以轻松地在虚拟环境中部署。
当你编译PIL的时候,它会告诉你是否已经编译了PNG支持,但如果安装出现问题,我建议你使用Ubuntu自带的版本。它的命名方式很奇特,但可以通过以下方式轻松安装:
apt-get install python-imaging
我发现在Ubuntu上构建PIL可能会遇到问题,因为libpng
位于非标准位置,而且PIL找不到它。
在下载PIL的文件夹中,编辑setup.py
文件。找到以下行:
JPEG_ROOT = None
并将其更改为
JPEG_ROOT = '/usr/lib/i386-linux-gnu/'
然后重新构建PIL并检查最后附近的消息,确认PNG支持已包含。
我知道想要添加PNG支持时修改JPEG_ROOT
很奇怪,但是setup.py
也会在JPEG_ROOT
中查找libpng
。