我们有以下代码:
img = Image.open(FileSystemStorage().path(relpath))
coords = [
cd['crop_start_x'],
cd['crop_start_y'],
cd['crop_end_x'],
cd['crop_end_y']
]
cropped_img = img.crop(coords)
cropped_path = "%s-cropped%s" % os.path.splitext(relpath)
tasks.delete_temporary_file.delay(fss.path(relpath))
cropped_img.save(fss.path(cropped_path))
当试图保存裁剪的图像时,我们得到一个奇怪的"不是有效数量的量化表。应介于1和4之间。"例外,只是在我们的一个环境中。 最奇怪的是,即使裁剪或图像没有改变,代码也可能有时
有人对此有过领导吗?
我们正在使用Pillow 2.8.1,python 2.7.6和Ubuntu server 12.04
答案 0 :(得分:3)
基本上,问题源于其中一个应用服务器中的冲突PIL安装。它很难找到,因为它们隐藏在负载均衡器后面,所以错误会突然出现
当我们在控制台上发布pip freeze
时,我们发现在其中一台服务器中我们安装了PIL和Pillow。
删除它们并重新安装Pillow后,我们解决了这个问题。
只是说清楚:
pip uninstall PIL
pip uninstall Pillow
pip install Pillow
然后,只需重新启动Web服务器。
正如其他人所说,另一个可能的原因是使用:
import Image
该声明仅适用于PIL,应避免使用。 我们应该总是使用:
from PIL import Image