Ответ 1
Здесь что-то, обертка Python вокруг интерпретатора Javascript SeaMonkey... http://pypi.python.org/pypi/python-spidermonkey
Можно ли интегрировать Python и JavaScript? Например, представьте, что вы хотели бы определить классы в JavaScript и использовать их с Python (или наоборот). Если да, то какой лучший способ? Меня интересует не только, если это возможно, но если кто-то сделал это в рамках "серьезного" проекта или продукта.
Я предполагаю, что было бы возможно использовать Jython и Rhino, например, но мне интересно, действительно ли это когда-либо делали, и если есть решения для других платформ (особенно CPython).
Здесь что-то, обертка Python вокруг интерпретатора Javascript SeaMonkey... http://pypi.python.org/pypi/python-spidermonkey
Как насчет pyjs?
С вышеуказанного сайта:
pyjs - это платформа для разработки многофункциональных интернет-приложений (RIA) для веб-приложений и настольных компьютеров. С pyjs вы можете писать свои веб-приложения на JavaScript полностью на Python.
Этот вопрос не совсем молод, но появились некоторые альтернативы:
существует два проекта, которые позволяют "очевидный" переход между объектами python и объектами javascript с "очевидными" переводами от int или float до номера и str или unicode в String: PyV8 и, как уже сказал один автор: python-spidermonkey.
на самом деле есть две реализации pyv8 - исходный эксперимент был sebastien louisel, а второй (в активном развитии) - flier liu.
мой интерес к этим проектам состоял в том, чтобы связать их с pajamas, компилятором python-to-javascript, чтобы создать ускоритель JIT python.
поэтому есть много - это просто зависит от того, что вы хотите сделать.
Если вы просто заинтересованы в распространении сложных типов данных между javascript и python, посмотрите jsonpickle. Он обертывает стандартные библиотеки Python JSON, но имеет некоторые преимущества в сериализации и десериализации классов Python и других типов данных.
Довольно много проектов Google App Engine использовали эту библиотеку. Joose и FirePython оба включают jsonpickle.
PyExecJS может использовать каждый из PyV8, Node, JavaScriptCore, SpiderMonkey, JScript.
>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> execjs.get().name
'Node.js (V8)'
Там есть мост, основанный на JavaScriptCore (из WebKit), но он довольно неполный: http://code.google.com/p/pyjscore/
Вы также можете проверить проект PyPy - у них есть Python для компилятора (ничего), включая Python для Javascript, C и llvm. Это позволяет писать код в Python, а затем компилировать его в Javascript по своему желанию.
Кроме того, ознакомьтесь с информативным блогом:
К сожалению, вы не можете преобразовать Javascript в Python таким образом. Кажется, что это действительно хорошо работает в целом, у них была версия Javascript (сделанная из скомпилированного Python) игры Bub'n'Bros онлайн (хотя сервер был на некоторое время).
Вы также можете использовать XPCOM
, например, в приложениях на XUL
таких как Firefox, Thunderbird или Komodo.
Я играл с Pyjon некоторое время назад, и мне кажется, что я могу написать Javascript eval прямо на Python и запускать простые программы... Хотя это не полная реализация JS, а скорее эксперимент. Получите его здесь:
Используйте Js2Py, чтобы перевести JavaScript на Python, это единственный доступный инструмент:)
Многие из этих проектов, упомянутых выше, мертвы или умирают, им не хватает активности и интереса со стороны автора. Интересно проследить, как развивается эта сфера.
Напомним, что в эпоху реализаций на основе плагинов в лагере KDE была предпринята попытка решить эту проблему с использованием плагинов и неязыкового языка, и я создал Kross https://en.wikipedia.org/wiki/Kross_(software) - в моем понимание того, что это никогда не происходило даже внутри самого сообщества.
В это время курицы и яйца -problem реализации на основе javascript - это определенно верный путь. Возможно, в будущем мы увидим чистую и полную поддержку Python изначально в браузерах.