Можно ли выполнить серверный javascript из *Python* экземпляра Google App Engine?

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

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

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

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


person kamens    schedule 13.11.2010    source источник
comment
Вам не нужен какой-либо хак для запуска экземпляра Python и Java одного и того же приложения. Просто загрузите их в разные версии одного и того же приложения. Только одна может быть версией по умолчанию, но это может не нарушать условия сделки.   -  person Robert Kluin    schedule 14.11.2010
comment
Я добавил пояснение к моему грубому комментарию о взломе - дело не в том, что две версии - это огромный взлом, просто необходимость запускать экземпляры Java и Python бок о бок, чтобы выполнить это, кажется грубым.   -  person kamens    schedule 14.11.2010


Ответы (4)


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

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

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

person Thomas K    schedule 13.11.2010

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

person Malvolio    schedule 08.01.2011

На самом деле это действительно можно сделать с помощью AppEngineJs или ESXX:

http://www.appenginejs.org/

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

person Hank    schedule 20.03.2011
comment
Это все еще решение Rhino для java AppEngine API. - person SingleNegationElimination; 21.03.2011

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

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

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

person Ruediger Jungbeck    schedule 29.04.2012