Вызов Python из JavaScript - PullRequest
       13

Вызов Python из JavaScript

10 голосов
/ 14 декабря 2009

Есть ли простой способ вызова библиотек Python из JavaScript? Особенно изнутри расширения Firefox.

Хороший вариант для компиляции чистой библиотеки Python также был бы хорош. Я посмотрел на Пижаму , но, похоже, он предлагает только частичную поддержку Python.

Ответы [ 6 ]

4 голосов
/ 14 декабря 2009

Возможно, вы захотите взглянуть на Titanium Desktop . У него отличный API, который позволяет легко вызывать Python из Javascript.

Например:

<script type="text/python" src="myfile.py"/>

Он использует Kroll Python Bridge для расширения и вызова функций с помощью простых тегов <script>.

Вы можете легко передавать целые числа, числа с плавающей точкой, логические значения, объекты, все это есть.

Вышеупомянутая ссылка имеет несколько примеров ее простого использования, и, естественно, она доступна для скачивания. :)

3 голосов
/ 14 декабря 2009

Вам может понадобиться браузер со встроенной поддержкой Python (но это не «стандарт», следовательно, это лишит цели использования веб-приложения - если вам нужен специальный клиент, вы можете лучше использовать классический графический интерфейс), или способ перевести Python на Javascript; Есть три варианта для этого:

  • Пижама
  • Скульпт
  • PyPy

Напротив, если вы просто хотите расширить Firefox, взгляните на это: http://pyxpcomext.mozdev.org/

3 голосов
/ 14 декабря 2009

Вы можете создать собственное расширение Firefox, которое использует libpython для запуска вашего кода на python. После этого экспортируйте интерфейс, который позволяет вашему коду Javascript вызывать python, работающий в вашем расширении.

Похоже, что есть расширение Python для Firefox, которое может позволить вам делать то, что вы хотите: http://pyxpcomext.mozdev.org/

3 голосов
/ 14 декабря 2009

Это не будет сделано в расширении, но, скорее, в плагине (иногда неясное, но заметное отличие.)

Я сейчас не знаю ни одного плагина, который бы напрямую представлял Python, но я слышал о нескольких способах заставить его работать косвенно. Например: вы можете получить IronPython (версия, управляемая .Net) , работающую через Silverlight . Также есть статья slashdot о предмете, который может вас заинтересовать.

В противном случае нет. Я не верю, что есть прямой способ сделать это сегодня. Не то чтобы я не любил ни одного. :)

2 голосов
/ 03 октября 2012

Посмотрите на проект https://github.com/niedbalski/slurpy Slurpy, он реализует двусторонняя связь как механизм RPC.

        python = new Slurpy();
        python.on('loaded', function(evt) {
            python.sum(10.5,1000, function(response) {
                alert(response);    
            });
        });
0 голосов
/ 14 декабря 2009

Я не уверен на 100%, но я точно знаю, что в Google Chrome вы не можете: вам понадобится либо:

  1. HTTP-шлюз какой-то
  2. плагин NPAPI

Ситуация, вероятно, такая же, как и в случае с Firefox, из соображений безопасности.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...