是否可以在*Python* Google App Engine实例中执行服务器端JavaScript?
关于在Google App Engine上运行服务器端的JavaScript,已经有很多问题被提问和回答了,但大多数答案都是围绕Java实例展开的,因为它们需要使用像Rhino这样的Java基础的JS解释器,Rhino for Webapps等。
有没有办法在Python的GAE实例上执行服务器端的JavaScript代码呢?我在想的就是类似于pyv8的东西,但需要支持App Engine(这意味着需要一个纯Python实现的解释器)。
目前我能想到的唯一解决方案就是用一种比较笨的方法,让Java和Python的GAE实例并排运行(通过不同的版本),这样它们就可以访问同一个数据存储,让Java实例来托管JS代码,然后通过API进行通信。听起来并不是很吸引人。
不需要讨论“这没必要,你不应该这样做”之类的事情——我知道这并不理想,我只是好奇这是否可行。
4 个回答
其实,这确实是可以做到的,可以使用 AppEngineJs 或者 ESXX:
http://esxx.blogspot.com/2009/06/esxx-on-google-app-engine.html
一个可行的办法是把Jython(和Rhino)放在一个Java环境中运行。当然,这样的话,你就得通过Java的接口来访问任何应用服务,而不是用Python的接口,这样就会显得比较麻烦。
根据我找到的信息:没有
我查了一下,似乎没有人尝试过用纯Python来做一个JavaScript引擎,我也不能怪他们:这会需要大量的工作,但用到的场景却很少(不幸的是,你的需求就是其中之一)。有几个项目——Grailbrowser和Pybrowser——有Python代码可以渲染HTML,未来可能会想要运行JavaScript,但目前还没有开始,而且这两个项目看起来都没有在积极开发中。
最有可能实现这种情况的方式是,如果谷歌能在Appengine上提供Parrot虚拟机(可以运行各种动态语言)。这是个不错的想法,但我并不抱太大希望。