Python 2.6+;PIL&x2B;谷歌应用程序引擎问题

Python 2.6+;PIL&x2B;谷歌应用程序引擎问题,python,image,google-app-engine,Python,Image,Google App Engine,我正在使用OSX1.6SnowLeopard,并成功安装了PIL。我能够打开终端并键入导入图像,没有任何错误 然而,当使用AppEngine时,我得到的图像错误仍然表示没有安装PIL。我想知道你们中是否有人对我如何解决这个问题有想法 -Matthew显然,Google在Google.appengine.api.images模块中提供了PIL。您可以在中看到有关如何使用它的示例。您是如何安装PIL的?如果我没记错的话,我必须通过MacPorts安装它,才能让App Engine SDK识别它已安装

我正在使用OSX1.6SnowLeopard,并成功安装了PIL。我能够打开终端并键入导入图像,没有任何错误

然而,当使用AppEngine时,我得到的图像错误仍然表示没有安装PIL。我想知道你们中是否有人对我如何解决这个问题有想法


-Matthew

显然,Google在
Google.appengine.api.images
模块中提供了PIL。您可以在中看到有关如何使用它的示例。

您是如何安装PIL的?如果我没记错的话,我必须通过MacPorts安装它,才能让App Engine SDK识别它已安装


您可能应该安装Python 2.5并在使用时使用它,因为App Engine使用的Python版本和本地针对2.6开发的Python版本在部署应用程序时可能会导致令人惊讶的问题。

您不能将PIL与Appengine一起使用;它使用C扩展,不会在沙箱环境中运行。您确实需要在本地计算机上安装PIL才能在dev_appserver中使用images API,因为images API的SDK版本本身使用PIL,但这并不意味着您可以通过images API使用所有PIL;imagesapi相当有限


此外,使用Python 2.5进行开发是一个好主意,因为生产环境使用2.5.2版,并且并非所有Python 2.6语法都能在生产环境中工作(尤其是“除foorerror as bar外”),开发服务器的目的是测试您的代码是否能在生产环境中正常工作。

我遇到了同样的问题,并在GoogleAppEngineLauncher |首选项中找到了将Python路径设置为/usr/local/bin/python2.5所需的选项


在我这么做之后,它开始工作。

大卫·斯科特所说的实际上是正确的

我在运行时遇到了错误,无论我尝试了什么补丁,都无法解决问题。显然,对我有效的方法是简单地更改C:\python27_x64上的Python目录,并使用Google应用程序引擎以pythonw.exe文件为目标

仅供参考,我使用Windows 8.1运行


文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\appcfg.py”,第127行,在 运行文件(文件,globals()) 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\appcfg.py”,第123行,在运行文件中 execfile(_PATHS.script_文件(script_名称),全局文件) 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\appcfg.py”,第5399行,在 主(系统argv) 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\appcfg.py”,主目录第5390行 结果=AppCfgApp(argv).Run() 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\appcfg.py”,第2980行,正在运行 自我行动(self) 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\appcfg.py”,第5046行,在调用中 返回方法() 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\appcfg.py”,第3793行,正在更新中 self.\u UpdateWithParsedAppYaml(appyaml,self.basepath) 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\appcfg.py”,第3814行,在_UpdateWithParsedAppYaml中 updatecheck.CheckForUpdates() CheckForUpdate中的文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\SDK\u update\u checker.py”第243行 运行时=运行时) 文件“C:\Program Files\Google\Cloud SDK\Google Cloud SDK\platform\Google\u appengine\Google\appengine\tools\appengine\u rpc.py”,第424行,发送 f=自动开启器开启(要求) 文件“C:\Python27\lib\urllib2.py”,第431行,打开 响应=自身打开(请求,数据) 文件“C:\Python27\lib\urllib2.py”,第449行,处于打开状态 "开放", 文件“C:\Python27\lib\urllib2.py”,第409行,在调用链中 结果=func(*args) 文件“C:\Python27\lib\urllib2.py”,第1240行,https\u open 上下文=自身(上下文) TypeError:do_open()获得意外的关键字参数“context” 2015-02-08 17:42:53(流程退出,代码为1)


您现在可以关闭此窗口。

要在SDK中使用他们的images API,您必须自己安装PIL:他已经在本地机器上成功安装了PIL。您不需要在应用程序引擎本身上安装它。问题是,他试图以
图像
的形式访问它,而GAEfollow上的模块名称并非如此。这两个家伙正在安装一个干净的雪豹。如果您在安装Python之后,我不确定它是否会工作。