web-dev-qa-db-fra.com

Meilleur moyen d'intégrer Python et JavaScript?

Est-il possible d'intégrer Python et JavaScript? Par exemple, imaginons que vous souhaitiez pouvoir définir des classes en JavaScript et les utiliser à partir de Python (ou inversement). Si oui, quel est le meilleur moyen? Je suis intéressé non seulement si cela est possible, mais si quelqu'un l’a fait dans le cadre d’un projet ou d’un produit "sérieux".

Je suppose qu'il serait possible d'utiliser Jython et Rhino , par exemple, mais je suis curieux de savoir si quelqu'un a déjà fait cela, et s'il existe des solutions pour d'autres plateformes (en particulier CPython ).

57
Jacob Gabrielson

Voici quelque chose, une enveloppe Python autour de l'interpréteur Javascript SeaMonkey ... http://pypi.python.org/pypi/python-spidermonkey

18
David Z

Que diriez-vous de pyjs ?

À partir du site Web ci-dessus:

pyjs est une plate-forme de développement Rich Internet Application (RIA) pour le Web et le bureau. Avec pyjs, vous pouvez écrire vos applications Web JavaScript entièrement en Python.

25
Stephen Simmons

Cette question n’est pas tout à fait récente, mais certaines solutions ont été avancées:

  • " Skulpt est une entièrement dans le navigateur implémentation de Python."
  • Brython - "Une implémentation de Python 3 pour la programmation Web côté client"
  • RapydScript - "Un code JavaScript de type Python, sans surcroît de travail"
  • Transcrypt - "Compilateur de Python 3.6 à JavaScript allégé avec un héritage multiple, des cartes source, une vérification de type statique et une surcharge sélective d'opérateurs." (aussi sur Github )
13
Tobias Kienzler

deux projets permettent une transition "évidente" entre les objets python et les objets javascript, avec des traductions "évidentes" de int ou float à Number et str ou unicode à String: PyV8 et, comme l'a déjà mentionné un auteur: python-spidermonkey .

il y a en fait deux implémentations de pyv8 - l'expérience originale était de Sébastien Louis, et la deuxième (en développement actif) est de voleur Liu.

mon intérêt dans ces projets a été de les relier à pyjamas , un compilateur python vers javascript, pour créer un accélérateur JIT python.

donc, il y en a beaucoup - cela dépend de ce que vous voulez faire.

9
lkcl

Si vous souhaitez simplement partager des types de données complexes entre javascript et python, consultez jsonpickle . Il encapsule les bibliothèques JSON Python standard, mais possède quelques compétences pour sérialiser et désérialiser les classes Python et d'autres types de données. 

De nombreux projets Google App Engine ont utilisé cette bibliothèque. Joose et FirePython les deux incorporent jsonpickle.

6
John Paulett

PyExecJS peut utiliser chacun des logiciels PyV8, Node, JavaScriptCore, SpiderMonkey et JScript.

>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> execjs.get().name
'Node.js (V8)'
3
iman

Vous pouvez également consulter le projet PyPy - ils ont un compilateur Python to (n'importe quoi), y compris Python en Javascript, C et llvm. Cela vous permet d'écrire votre code en Python puis de le compiler en Javascript comme vous le souhaitez.

http://codespeak.net/pypy

Consultez également le blog informatif:

http://morepypy.blogspot.com/

Malheureusement, vous ne pouvez pas convertir Javascript en Python de cette façon. Cela semble fonctionner très bien dans l’ensemble, ils avaient une version Javascript (en Python compilé) du jeu Bub'n'Bros en ligne (bien que le serveur soit en panne depuis un moment).

http://bub-n-bros.sourceforge.net

2

Il existe un pont basé sur JavaScriptCore (de WebKit), mais il est assez incomplet: http://code.google.com/p/pyjscore/

2
Miles

une autre possibilité consiste à utiliser XPCOM, par exemple dans des applications basées sur XUL (telles que firefox, Thunderbird, komodo, etc.)

1
liucougar

Je jouais avec Pyjon il y a quelque temps et semble avoir réussi à écrire l'éval de Javascript directement en Python et à exécuter des programmes simples ... Bien que l'implémentation de JS ne soit pas complète et plutôt une expérience ...

http://code.google.com/p/pyjon/

1
buzzilo

Utilisez Js2Py pour traduire JavaScript en Python, c’est le seul outil disponible :)

1
Piotr Dabkowski

Un grand nombre des projets mentionnés ci-dessus sont morts ou mourants, manquent d'activité et d'intérêt de la part de l'auteur. Intéressant à suivre l'évolution de cette région.

Pour mémoire, à l'époque des implémentations basées sur des plugins, le camp KDE avait tenté de résoudre ce problème avec des plugins et des méthodes non spécifiques à une langue et avait créé le Kross https://en.wikipedia.org/wiki/Kross_(software) - à mon sens, cela n’a jamais décollé, même au sein de la communauté elle-même.

Pendant cette période difficile, les implémentations basées sur javascript sont tout à fait utiles. Peut-être qu’à l’avenir nous verrons un support Python complet et naturel dans les navigateurs.

0
Juha Tuomala