这里实际上有几个问题。对于我正在做的事情,我正在使用Django 1.1和Google App Engine进行基本图像上传。这是我的表单类:
class UploadPictureForm(forms.Form):
picture = forms.ImageField()
然后提交,我有以下代码:
def handle_picture(request):
form = UploadPictureForm(request.POST, request.FILES)
if form.is_valid():
save_picture(request.FILES['picture']
我收到以下错误:
Exception Type: ImportError
Exception Value: No module named PIL
Exception Location: /Library/Python/2.6/site-packages/django/forms/fields.py in clean, line 495
Python Executable: /usr/bin/python2.6
Python Version: 2.6.1
Python Path: [..., '/Library/Python/2.6/site-packages', '/Library/Python/2.6/site-packages/PIL']
我已经在site-packages
目录中安装了PIL,如果我从命令行运行python,我可以用import PIL
问题#1是为什么这不起作用? GAE正在采取措施阻止这项工作吗?第二件事是我注意到GAE有一些Image API。我应该使用那些吗?所有这些对我来说都是新的。
答案 0 :(得分:3)
对于初学者,你不应该在Python 2.6中使用GAE。 Google App Engine的创建时考虑到2.5,它通常会在2.6上以多种方式中断。
更多,我不太确定你可以在GAE上使用PIL。它是一个基于C的库,因此它是GAE的禁忌(它要求自定义包只是纯Python)(对于这个问题,甚至有a ticket)。
这就是为images API创建的内容。它仍然使用PIL作为后端(至少在用户端),但提供了它的“安全”子集。
答案 1 :(得分:0)
你能告诉我们完整的堆栈跟踪吗?根据您提供的内容,有以下几种选择:
答案 2 :(得分:0)
更多,我不太确定你可以在GAE上使用PIL。它是一个基于C的库,因此它对GAE来说是禁忌(它要求自定义包只是纯Python)(甚至还有这个问题的门票)。
开发服务器在本地使用PIL来模拟所有图像api调用。您可以找到installation instructions here