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

Вызов Python из JavaScript

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

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

4b9b3361

Ответ 1

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

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

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

Ответ 2

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

Например:

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

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

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

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

Ответ 3

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

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

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

Ответ 4

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

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

Ответ 5

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

        python = new Slurpy();
        python.on('loaded', function(evt) {
            python.sum(10.5,1000, function(response) {
                alert(response);    
            });
        });

Ответ 6

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

  • HTTP-шлюз какого-либо типа
  • плагин NPAPI

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