Python Google应用程序引擎中的Django表单找不到模块PIL
这里实际上有几个问题。对于我正在做的事情,我正在使用Django 1.1和Google App Engine进行基本的图像上传。这是我的表格课:Python Google应用程序引擎中的Django表单找不到模块PIL,python,google-app-engine,python-imaging-library,Python,Google App Engine,Python Imaging Library,这里实际上有几个问题。对于我正在做的事情,我正在使用Django 1.1和Google App Engine进行基本的图像上传。这是我的表格课: class UploadPictureForm(forms.Form): picture = forms.ImageField() 然后在提交时,我有以下代码: def handle_picture(request): form = UploadPictureForm(request.POST, request.FILES)
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']
我已经在站点包
目录中安装了PIL,如果我从命令行运行python,我可以使用导入PIL
所以问题1是为什么这不起作用?盖伊是不是做了什么事情让它无法工作?第二件事是我注意到GAE有一些图像API。我应该用这些来代替吗?所有这些对我来说都有些新鲜。对于初学者来说,您不应该在Python 2.6中使用GAE。谷歌应用引擎(GoogleAppEngine)是在考虑到2.5的情况下创建的,它通常在2.6上以多种方式中断 更重要的是,我不太确定你能不能用PIL和GAE。它是一个基于C的库,因此它对GAE来说是一个禁忌(它要求定制的包只能是纯Python的)(甚至对于这个问题也没有)
这就是我们创造的目的。它仍然使用PIL作为后端(至少在用户端),但提供了一个“安全”的子集。您能给我们展示完整的stacktrace吗?根据您提供的内容,有几个选项:
开发服务器在本地使用PIL来模拟所有映像api调用。您可以发现这一切都是有道理的。我一直想切换到2.5,但还没有机会。至于使用PIL,这是有道理的。我可以很容易地使用imagesapi。令人惊讶的是,我得到了一个模块未找到的错误。这里的想法是GAE只是忽略它知道是基于C的模块吗?只是好奇而已,答案并不特别重要。哇,有趣的故事!甚至可以在Python的REPL中导入PIL吗?我已经通过easy_install安装了PIL,但我不能!然后我从源代码和宾果中重新编译了整个内容!现在可以了。(在这两种情况下,
导入图像
工作都完美无缺)。