2009-12-14 33 views
10

有沒有簡單的方法從JavaScript調用Python庫?特別是從Firefox擴展的內部。從JavaScript中調用Python

編譯純Python庫的一個很好的選擇也很棒。我看着Pyjamas,但它似乎只提供對Python的部分支持。

+0

你問關於瀏覽器端的Python嗎?誰在用戶的瀏覽器中安裝該Python?這將如何工作? – 2009-12-14 14:14:08

+1

只是爲了澄清,你指的JavaScript--你的意思是在你的web服務器上的網頁上使用Javascript,還是你想用JavaScript/Python混合編寫一個Firefox擴展? – 2009-12-14 15:37:10

+0

我想使用python庫編寫/增強現有的Firefox擴展。 – 2009-12-15 07:11:12

回答

3

你要麼需要使用內置Python支持瀏覽器(但這不是一個「標準」,因此,它會挫敗使用webapp的目的 - 如果你需要一個特殊的客戶端,你可以更好地使用經典的gui),或者將Python翻譯成Javascript的方式;有三種選擇這個當時:

  • 睡衣
  • Skulpt
  • PyPy

相反,如果你只是要擴展的Firefox,看看這個: http://pyxpcomext.mozdev.org/

3

這不是一個擴展來實現,但更可能是插件(一個有時模糊的,但顯着的區別。)

我現在不知道任何插件直接暴露Python,但也有我聽說過幾種方式來間接地使用它。例如:你可以得到IronPython(一個.Net驅動版本)running through Silverlight。關於您可能感興趣的主題,還有一個slashdot article

否則,沒有。我不相信今天有直接的辦法。不是我不會愛一個人。 :)

0

我不是100%肯定,但我知道一個事實,即在谷歌瀏覽器不能:你需要兩種:

  1. 某種類型的HTTP「網關」
  2. NPAPI插件

由於安全問題,Firefox情況可能情況相同。

4

你不妨看看Titanium Desktop。它有一個很棒的API,可以讓你在Javascript中輕鬆調用Python。

如:

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

它使用Python的克羅爾橋,可以延長和簡單<script>標籤調用的函數。

您可以輕鬆地傳遞整數,浮點數,布爾值,對象,它都在那裏。

上述鏈接有幾個簡單用法的例子,自然可以下載。 :)

3

您可以構建一個使用libpython運行python代碼的本地Firefox擴展。從這裏,導出一個接口,使您的Javascript代碼可以調用運行在您的擴展中的python。

看來,有一個Firefox的Python擴展,可以讓你做你想做的: http://pyxpcomext.mozdev.org/

2

看一看https://github.com/niedbalski/slurpy Sl project項目,它實現了 作爲RPC機制的雙向通信。

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