2009-12-14 7 views
10

Existe-t-il un moyen simple d'appeler des bibliothèques Python à partir de JavaScript? Surtout depuis l'intérieur d'une extension Firefox.Appel de Python à partir de JavaScript

Une bonne option pour compiler une pure bibliothèque Python serait également bonne. J'ai regardé Pyjamas, mais il semble n'offrir qu'un support partiel pour Python.

+0

Demandez-vous sur Python côté navigateur? Qui installe ce Python dans le navigateur de l'utilisateur? Comment cela fonctionnerait-il? –

+1

Juste pour clarifier, le Javascript auquel vous faites référence - voulez-vous dire le Javascript dans les pages web sur votre serveur web, ou voulez-vous écrire une extension Firefox dans un mélange de Javascript/Python? –

+0

Je veux écrire/améliorer des extensions firefox existantes, en utilisant des bibliothèques python. –

Répondre

3

Vous soit besoin d'un navigateur avec python intégré (mais ce n'est pas un « standard », donc cela irait à l'encontre du but de l'utilisation d'une webapp - si vous avez besoin d'un client spécial, vous pouvez mieux utiliser un gui classique), ou un moyen de traduire Python en Javascript; il trois options pour ce au moment:

  • Pyjama
  • Skulpt
  • PyPy

Au contraire, si vous juste voulez étendre Firefox, jetez un oeil à ceci: http://pyxpcomext.mozdev.org/

3

Ce ne serait pas fait dans une extension, mais plus probablement un plug-in (une différence parfois obscure, mais notable.)

Je ne suis pas au courant des plug-ins en ce moment que Python directement exposé, mais il y a deux façons dont j'ai entendu parler pour le faire fonctionner indirectement. Par exemple: vous pouvez obtenir IronPython (une version pilotée par .Net) running through Silverlight. Il y a aussi un slashdot article sur le sujet que vous pouvez trouver intéressant.

Sinon, non. Je ne crois pas qu'il existe un moyen direct de le faire aujourd'hui. Pas que je n'en aimerais pas un. :)

0

Je ne suis pas sûr à 100%, mais je ne sais pertinemment que sur Google Chrome vous ne pouvez pas: vous devez soit:

  1. une « passerelle » HTTP de quelque sorte
  2. un plugin NPAPI

La situation est probablement la même sur le cas de Firefox en raison de problèmes de sécurité.

4

Vous pouvez regarder le Titanium Desktop. Il a une API géniale qui vous permet d'appeler facilement Python depuis Javascript.

Par exemple:

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

Il utilise le pont Python Kroll pour étendre et appeler les fonctions avec de simples balises <script>.

Vous pouvez facilement passer des entiers, des nombres à virgule flottante, des booléens, des objets, tout est là.

Le lien ci-dessus a plusieurs exemples de son utilisation simple, et naturellement, il est disponible en téléchargement. :)

3

Vous pouvez créer une extension Firefox native qui utilise libpython pour exécuter votre code python. De là, exportez une interface qui permet à votre code Javascript d'appeler python en cours d'exécution dans votre extension.

Il semble qu'il y ait une extension python Firefox qui peut vous permettre de faire ce que vous voulez: http://pyxpcomext.mozdev.org/

2

Regardez le projet https://github.com/niedbalski/slurpy Slurpy, il met en œuvre communications bidirectionnelles en tant que mécanisme RPC.

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