我正在使用OS X 1.6雪豹,我成功安装了PIL。我可以打开终端并输入导入图像,没有任何错误。
然而,当使用app引擎时,我得到Image错误仍然说没有安装PIL。我想知道你们是否有任何想法如何解决这个问题。
马修
答案 0 :(得分:3)
显然,Google在google.appengine.api.images
模块中提供了PIL。您可以在App Engine Documentation - Using the Images Python API中看到有关如何使用它的示例。
答案 1 :(得分:1)
我遇到了同样的问题,并在GoogleAppEngineLauncher中找到了我需要将Python路径设置为/usr/local/bin/python2.5
的首选项我这样做后就开始工作了。
答案 2 :(得分:0)
您不能将PIL与Appengine一起使用;它使用C扩展,不会在沙箱环境中运行。您需要在本地计算机上安装PIL以使用dev_appserver中的图像API,因为图像API的SDK版本本身使用PIL,但这并不意味着您可以通过图像API使用所有PIL;图像API相当有限。
此外,使用Python 2.5进行开发是一个好主意,因为生产环境使用的是版本2.5.2,并非所有Python 2.6语法都可以在生产中使用(特别是“除了FooError作为条形码”),以及开发服务器将测试您的代码是否可以在生产中正常工作。
答案 3 :(得分:0)
大卫·斯科特所说的实际上是正确的。
我遇到了错误,无论我尝试什么补丁,我都无法解决问题。显然,对我来说有用的只是更改C:\ python27_x64上的Python目录,并使用Google App Engine定位pythonw.exe文件。
仅供参考,我使用的是Windows 8.1
文件" C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ appcfg.py",第127行,在 run_file( file ,globals()) 在run_file中的文件" C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ appcfg.py",第123行 execfile(_PATHS.script_file(script_name),globals_) 文件" C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py",第5399行, 主(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.action(个体经营) 文件" C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py",第5046行,调用 返回方法() 文件" C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py",第3793行,在更新中 self._UpdateWithParsedAppYaml(appyaml,self.basepath) 文件" C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ appcfg.py",第3814行,_UpdateWithParsedAppYaml updatecheck.CheckForUpdates() CheckForUpdates中的文件" C:\ Program Files \ Google \ Cloud SDK \ google-cloud-sdk \ platform \ google_appengine \ google \ appengine \ tools \ sdk_update_checker.py",第243行 运行时间=运行时)) 文件" 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.py",第449行,在_open中 ' _open',req) 文件" C:\ Python27 \ lib \ urllib2.py",第409行,_call_chain result = func(* args) 文件" C:\ Python27 \ lib \ urllib2.py",第1240行,在https_open中 上下文= self._context) TypeError:do_open()得到了一个意外的关键字参数' context' 2015-02-08 17:42:53(进程退出代码1)
您现在可以关闭此窗口。
答案 4 :(得分:-1)
你是如何安装PIL的?如果我没记错的话,我必须通过MacPorts安装它才能让App Engine SDK识别它已安装。
您应该安装Python 2.5并使用它,当您使用它时,因为这是App Engine使用的Python版本,并且在本地针对2.6进行开发可能会在您部署应用程序时导致意外问题。