2009-12-14 5 views
10

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

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

+0

Вы спрашиваете о Python на стороне браузера? Кто устанавливает этот Python в браузере пользователя? Как это будет работать? –

+1

Чтобы уточнить, на каком Javascript вы ссылаетесь, вы имеете в виду Javascript в веб-страницах вашего веб-сервера или хотите написать расширение Firefox в сочетании Javascript/Python? –

+0

Я хочу писать/расширять существующие расширения firefox, используя библиотеки python. –

ответ

3

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

  • пижаме
  • Skulpt
  • PyPy

С другой стороны, если вы просто хотите расширить Firefox, посмотрите на это: http://pyxpcomext.mozdev.org/

3

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

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

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

0

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

  1. НТТР «шлюз» какой-то
  2. a NPAPI-плагин

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

4

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

Например:

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

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

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

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

3

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

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

2

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

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