Google App Engine上的Jython开发

问题描述 投票:6回答:2

有没有人使用Jython和Google App Engine有任何直接经验(好的或坏的)?

google-app-engine jython
2个回答
4
投票

问一个显而易见的问题:你为什么要这样做? (C)Google App Engine本身支持Python,到目前为止相当成熟且得到很好的支持。

但是要回答原来的问题:我没有个人经验,但我可以概括一下它会是什么样的:

目前最简单的方法是使用Jython支持调用Java以使用App Engine Java SDK。 这意味着虽然你将编写Python,但它看起来很像Java,你将不得不使用Java文档,而不是Python文档。

但是,理论上可以在App Engine上的Jython中使用Python SDK。 SDK是纯Python,SDK和运行时之间的所有交互都是通过RPC通过google.appengine.api.apiproxy_stub_map模块完成的。 Java在com.google.apphosting.api.ApiProxy类中有一个等效的接口 - 有关如何配置它的一些详细信息,请参阅GAE中的单元测试一文。

鉴于这一切,以下是如何在Jython中使用Python API:

  1. 编写一个Python apiproxy_stub,它只需要调用所有API,然后将它们发送到com.google.apphosting.api.ApiProxy类。
  2. 将Python SDK的相关部分与您的Jython应用程序捆绑在一起(不幸的是,大部分都是这样)。
  3. 在初始化代码中,安装您编写的apiproxy_stub子类作为所有相关服务的处理程序 - datastore_v3,memcache,user,urlfetch和images。

如果您最终这样做,请记录并发布代码 - 我知道至少有一个其他用户会感兴趣。 :)


2
投票

首先,有人声称Jython,Querces和JRuby在速度方面可以利用JVM的强大功能击败他们的原生对手

但是,关于Jython的速度存在一些相互矛盾的信息。 Stack Overflow用户声称Jython是他进行的速度测试中涉及的许多语言中最慢的

这两个性能问题都不是真正涉及App Engine,而是JVM。

由Jython提交者发布的这篇文章中 ,Alan Kennedy声称App Engine上的Jython将Python的快速开发特性与JVM中可用的丰富库相结合。 Jython是Python,但它可以直接访问Java类。

我对Querces PHP有一些经验。 我将JQuery Form Builder插件移植到Google App Engine。 它是PHP代码,但PHP能够直接访问用Java编写的DAO对象。 同样,Jython也能做到这一点。

Alan Kennedy还遇到了Nick Johnson发布挑战 ,他演示了可以在App Engine上使用Jython完成的事情,否则在纯Python,XSLT转换中很难完成。 他回答了尼克回答中的罢工问题:你为什么要这样做?

© www.soinside.com 2019 - 2024. All rights reserved.