2010-05-21 80 views
3

我使用的是OS X 1.6雪豹,并且我成功安装了PIL。我能够打开终端并输入导入图像没有任何错误。Python 2.6 + PIL + Google App Engine问题

但是,当使用应用程序引擎时,我得到图像错误仍然说没有安装PIL。我想知道您是否有任何想法可以解决此问题。

马修

回答

3

显然,谷歌提供了PIL的google.appengine.api.images模块中。你可以看到如何在App Engine Documentation - Using the Images Python API中使用它的例子。

+0

要在SDK中使用它们的图像API,您必须自己安装PIL:http://code.google.com/appengine/docs/python/images/installingPIL.html – 2010-05-21 20:07:57

+1

他已经完成*成功*上他的本地机器。您不需要将其安装在应用程序引擎上。问题是他试图以'Image'的形式访问它,并且这不是GAE – 2010-05-21 20:10:14

-1

您是如何安装PIL的?如果我没有记错,我必须通过MacPorts安装它,以使App Engine SDK识别它已安装。

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

+0

上的模块命名,请遵循这些人的步骤进行干净的雪豹安装。如果您在事实后安装了Python,我不确定它会起作用。 http://proteus-tech.com/blog/cwt/install-pil-in-snow-leopard/ – mattwallace 2010-06-18 21:52:27

0

你不能在Appengine中使用PIL;它使用C扩展名,并且不会在沙盒环境中运行。您需要在本地计算机上安装PIL以使用dev_appserver中的图像API,因为SDK版本的图像API本身使用PIL,但这并不意味着您可以通过图像API使用所有PIL;图像API相当有限。

此外,使用Python 2.5进行开发是一个好主意,因为生产环境使用版本2.5.2,并非所有的Python 2.6语法都可以在生产环境中使用(特别是“除了FooError以外”),以及开发服务器将测试你的代码在生产中是否正常工作。

1

我有同样的问题,发现在GoogleAppEngineLauncher |我需要将Python路径设置为/usr/local/bin/python2.5的首选项

之后,我开始工作。

0

David Scott说的其实是正确的。

我有错误吹跑,不能解决问题,无论我尝试什么补丁都无法解决问题。显然,我的工作很简单,只是更改C:\ python27_x64上找到的Python目录,并使用Google App Engine定位pythonw.exe文件。

仅供参考,我在Windows上运行8.1


文件 “C:\ Program Files文件\谷歌\云SDK \谷歌云SDK \平台\ google_appengine \ appcfg.py”,第127行,在文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ appcfg.py”,第123行,在run_file中 execfile(_PATHS。文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py”,第5399行,在 main(sys.argv) 在主 的文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py”中,第5390行result = AppCfgApp(argv).Run() 文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py”第2980行,运行 self 。动作(self) 文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py”,行5046,在中调用 return method ) self._UpdateWithParsedAppYaml(appyaml,self。)文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py”,第3793行,更新 。 basepath) 文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py”,行3814,_UpdateWithParsedAppYaml updatecheck.CheckForUpdates() File “C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ sdk_update_checker.py”,第243行,位于CheckForUpdates runtime = runtime)) 在发送 文件“C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appengine_rpc.py”中,第424行f = self .opener.open(req) 文件“C:\ Python27 \ lib \ urllib2.py”,第431行,打开 response = self._open(req,data) 文件“C:\ Python27 \ lib \ urllib2。文件“C:\ Python27 \ lib \ urllib2.py”,第409行,在_call_chain中 result = func(* args) 文件“C:\ Python27”,第449行,在_open '_open',req) \ lib \ urllib2.py“,行1240,在https_open context = self._context) TypeError:do_open()得到了一个意想不到的关键字参数'context' 2015-02-08 17:4 2:53(过程用代码1退出)

您现在可以关闭此窗口。