Вызов Python из JavaScript
Есть ли простой способ вызвать библиотеки Python из JavaScript? Особенно изнутри расширения Firefox.
Хорошая возможность компилировать чистую библиотеку Python также будет отличной. Я посмотрел на Pyjamas, но, похоже, он предлагает лишь частичную поддержку Python.
Ответы
Ответ 1
Вам понадобится браузер с встроенной поддержкой python (но это не "стандарт", следовательно, это победит цель использования webapp - если вам нужен специальный клиент, вы можете лучше использовать классический gui) или способ перевода Python на Javascript; там было три варианта для этого:
Наоборот, если вы просто хотите расширить 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 из-за проблем с безопасностью.