Подтвердить что ты не робот

Лучший способ интегрировать Python и JavaScript?

Можно ли интегрировать Python и JavaScript? Например, представьте, что вы хотели бы определить классы в JavaScript и использовать их с Python (или наоборот). Если да, то какой лучший способ? Меня интересует не только, если это возможно, но если кто-то сделал это в рамках "серьезного" проекта или продукта.

Я предполагаю, что было бы возможно использовать Jython и Rhino, например, но мне интересно, действительно ли это когда-либо делали, и если есть решения для других платформ (особенно CPython).

4b9b3361

Ответ 2

Как насчет pyjs?

С вышеуказанного сайта:

pyjs - это платформа для разработки многофункциональных интернет-приложений (RIA) для веб-приложений и настольных компьютеров. С pyjs вы можете писать свои веб-приложения на JavaScript полностью на Python.

Ответ 3

Этот вопрос не совсем молод, но появились некоторые альтернативы:

  • " Skulpt - полностью встроенная версия Python.
  • Brython - "Реализация Python 3 для клиентского веб-программирования"
  • RapydScript - "Python-подобный JavaScript без дополнительных накладных расходов или причуд"
  • Transcrypt - "Lean и средний Python 3.6 для компилятора JavaScript с множественным наследованием, исходными картами, проверкой статического типа и выборочной перегрузкой оператора." (также в Github)

Ответ 4

существует два проекта, которые позволяют "очевидный" переход между объектами python и объектами javascript с "очевидными" переводами от int или float до номера и str или unicode в String: PyV8 и, как уже сказал один автор: python-spidermonkey.

на самом деле есть две реализации pyv8 - исходный эксперимент был sebastien louisel, а второй (в активном развитии) - flier liu.

мой интерес к этим проектам состоял в том, чтобы связать их с pajamas, компилятором python-to-javascript, чтобы создать ускоритель JIT python.

поэтому есть много - это просто зависит от того, что вы хотите сделать.

Ответ 5

Если вы просто заинтересованы в распространении сложных типов данных между javascript и python, посмотрите jsonpickle. Он обертывает стандартные библиотеки Python JSON, но имеет некоторые преимущества в сериализации и десериализации классов Python и других типов данных.

Довольно много проектов Google App Engine использовали эту библиотеку. Joose и FirePython оба включают jsonpickle.

Ответ 6

PyExecJS может использовать каждый из PyV8, Node, JavaScriptCore, SpiderMonkey, JScript.

>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> execjs.get().name
'Node.js (V8)'

Ответ 7

Там есть мост, основанный на JavaScriptCore (из WebKit), но он довольно неполный: http://code.google.com/p/pyjscore/

Ответ 8

Вы также можете проверить проект PyPy - у них есть Python для компилятора (ничего), включая Python для Javascript, C и llvm. Это позволяет писать код в Python, а затем компилировать его в Javascript по своему желанию.

http://codespeak.net/pypy

Кроме того, ознакомьтесь с информативным блогом:

http://morepypy.blogspot.com/

К сожалению, вы не можете преобразовать Javascript в Python таким образом. Кажется, что это действительно хорошо работает в целом, у них была версия Javascript (сделанная из скомпилированного Python) игры Bub'n'Bros онлайн (хотя сервер был на некоторое время).

http://bub-n-bros.sourceforge.net

Ответ 9

Вы также можете использовать XPCOM, например, в приложениях на XUL таких как Firefox, Thunderbird или Komodo.

Ответ 10

Я играл с Pyjon некоторое время назад, и мне кажется, что я могу написать Javascript eval прямо на Python и запускать простые программы... Хотя это не полная реализация JS, а скорее эксперимент. Получите его здесь:

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

Ответ 11

Используйте Js2Py, чтобы перевести JavaScript на Python, это единственный доступный инструмент:)

Ответ 12

Многие из этих проектов, упомянутых выше, мертвы или умирают, им не хватает активности и интереса со стороны автора. Интересно проследить, как развивается эта сфера.

Напомним, что в эпоху реализаций на основе плагинов в лагере KDE была предпринята попытка решить эту проблему с использованием плагинов и неязыкового языка, и я создал Kross https://en.wikipedia.org/wiki/Kross_(software) - в моем понимание того, что это никогда не происходило даже внутри самого сообщества.

В это время курицы и яйца -problem реализации на основе javascript - это определенно верный путь. Возможно, в будущем мы увидим чистую и полную поддержку Python изначально в браузерах.