Можно ли выполнить javascript на стороне сервера из экземпляра Google App Engine * Python *? - PullRequest
16 голосов
/ 13 ноября 2010

A lot из вопросов были заданы вопросы о запуске серверного javascript в Google App Engine, но все ответы касаются экземпляров Java для использования JS-интерпретаторы на основе Java, такие как Rhino, Rhino для веб-приложений и т. Д.

Есть ли способ выполнить код javascript на стороне сервера для экземпляра Python GAE? Я думаю, что-то точно так же, как pyv8 , но с поддержкой App Engine (что, я думаю, означало бы чистую реализацию интерпретатора на python).

Единственное решение, которое я могу предложить на данный момент, - это использовать какой-то грубый хак для параллельного запуска экземпляра Java и Python GAE (через разные версии), чтобы они оба могли общаться с одним и тем же хранилищем данных, позвольте экземпляру Java разместить код JS и использовать API для обратной связи. Не очень привлекательно.

Не нужно вдаваться во все дискуссии «это не нужно, вы не должны этого делать» - я знаю, что это не идеально, и мне просто любопытно, можно ли это сделать.

Ответы [ 4 ]

3 голосов
/ 14 ноября 2010

Насколько я могу найти: Нет

Я провел небольшой поиск, но похоже, что никто не пытался реализовать чистый движок Python Javascript, и я не могу винить их: это было бы огромной работой для очень немногих случаев использования (к сожалению, твой один из тех). В нескольких проектах - Grailbrowser и Pybrowser - есть код Python для рендеринга HTML, поэтому однажды можно будет попытаться запустить JavaScript, но он даже не запущен, и ни один из них не смотрит в активную разработку.

Вероятнее всего, это когда-нибудь произойдет, если Google предложит виртуальную машину Parrot (которая может работать на разных динамических языках) в Appengine. Это крутая идея, но я не задерживаю дыхание.

2 голосов
/ 08 января 2011

Что может сработать, так это запустить Jython (и Rhino) в экземпляре Java.Конечно, тогда вам придется обращаться к любым службам приложений через API Java, а не через Python, что было бы ужасно.

1 голос
/ 20 марта 2011

На самом деле, это действительно можно сделать, используя AppEngineJs или ESXX:

http://www.appenginejs.org/

http://esxx.blogspot.com/2009/06/esxx-on-google-app-engine.html

0 голосов
/ 29 апреля 2012

В настоящее время я пытаюсь решить ту же проблему с PyJON

http://code.google.com/p/pyjon/

Кажется, что это чистый Python JavaScrit парсер интерпретатор.

...