La meilleure façon d'intégrer Python et JavaScript?

est-il possible d'intégrer Python et JavaScript? Par exemple, imaginez que vous vouliez être capable de définir des classes dans JavaScript et les utiliser depuis Python (ou vice versa). Si oui, quelle est la meilleure façon? Je suis intéressé non seulement si cela est possible, mais si quelqu'un l'a fait dans un "sérieux" projet ou produit .

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

55
demandé sur Jacques de Hooge 2009-03-26 00:08:11

12 réponses

voici quelque chose, un emballage Python autour de L'interpréteur Javascript SeaMonkey... http://pypi.python.org/pypi/python-spidermonkey

18
répondu David Z 2009-03-25 21:13:09

et pyjs ?

à Partir du site web ci-dessus:

pyjs est une riche plate-forme de développement D'applications Internet (RIA) pour le Web et le bureau. Avec pyjs, vous pouvez écrire vos applications web alimentées par JavaScript entièrement en Python.

24
répondu Stephen Simmons 2015-08-06 14:29:13

cette question n'est pas tout à fait jeune, mais il y a eu des alternatives:

  • " Skulpt est un entièrement dans le navigateur implémentation de Python."
  • Brython - "Un Python 3 la mise en œuvre de la programmation web côté client"
  • Rapidscript - " JavaScript de type Python sans le surimpression supplémentaire ou les bizarreries"
  • Transcrypt - "Lean and mean Python 3,6 à compilateur JavaScript avec l'héritage multiple, sourcemaps, vérifier le type statique et sélectif de la surcharge d'opérateur."(également sur Github )
12
répondu Tobias Kienzler 2017-11-30 15:13:50

il y a deux projets qui 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 un auteur l'a déjà mentionné: python-spidermonkey .

il y a en fait deux implémentations de pyv8 - l'expérience originale était de sebastien louisel, et la seconde (en développement actif) est par flier liu.

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

donc il y a beaucoup dehors - cela dépend juste ce que vous voulez faire.

9
répondu 2009-04-08 18:18:28

si vous souhaitez partager des types de données complexes entre javascript et python, consultez jsonpickle . Il enveloppe les bibliothèques standard de Python JSON, mais a quelques astuces pour sérialiser et désérialiser les classes Python et d'autres types de données.

un bon nombre de projets Google App Engine ont utilisé cette bibliothèque. Joose et FirePython à la fois intégrer jsonpickle.

6
répondu John Paulett 2009-03-25 23:26:03

PyExecJS est capable d'utiliser chacun de PyV8, Node, JavaScriptCore, SpiderMonkey, JScript.

>>> import execjs
>>> execjs.eval("'red yellow blue'.split(' ')")
['red', 'yellow', 'blue']
>>> execjs.get().name
'Node.js (V8)'
3
répondu iman 2014-08-01 17:24:22

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

2
répondu Miles 2009-03-25 21:47:03

vous pourriez aussi vouloir vérifier le projet PyPy - ils ont un Python pour (n'importe quoi) compiler, y compris Python à Javascript, C, et llvm. Cela vous permet d'écrire votre code en Python et de le compiler dans Javascript comme vous le souhaitez.

http://codespeak.net/pypy

aussi, consultez le blog informatif:

http://morepypy.blogspot.com /

malheureusement, vous ne pouvez pas convertir Javascript en Python de cette façon. Il semble que cela fonctionne vraiment bien dans l'ensemble, ils avaient l'habitude D'avoir une version Javascript (faite à partir de Python compilé) du jeu en ligne de Bub'N'Bros (bien que le serveur est en panne depuis un certain temps).

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

2
répondu 2009-03-26 03:01:25

une autre possibilité est D'utiliser XPCOM, disons dans des applications basées sur XUL (comme firefox, thunderbird, komodo etc.)

1
répondu liucougar 2011-01-25 00:27:57

je jouais avec Pyjon il y a quelque temps et semble avoir réussi à écrire l'évaluation de Javascript directement en Python et exécuté des programmes simples... Bien qu'il ne s'agisse pas d'une mise en œuvre complète de JS et plutôt d'une expérience. Obtenez-le ici:

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

1
répondu buzzilo 2011-11-24 10:37:04

utiliser Js2Py pour traduire JavaScript en Python, c'est le seul outil disponible:)

1
répondu Piotr Dabkowski 2014-12-13 15:08:56

plusieurs de ces projets mentionnés ci-dessus sont morts ou mourants, sans activité et sans intérêt de la part de l'auteur. Intéressant de suivre l'évolution de cette zone.

pour mémoire, à l'époque des implémentations basées sur plugin, KDE camp a tenté de résoudre ce problème avec le plugin et de manière non spécifique à la langue et a créé le Kross https://en.wikipedia.org/wiki/Kross_ (software) - d'après ce que j'ai compris, il n'a jamais décollé, même à l'intérieur de la communauté elle-même.

au cours de cette période de problèmes avec les poulets et les œufs, les implémentations basées sur javascript sont définitivement du chemin à parcourir. Peut-être qu'à l'avenir, nous verrons un support Python pur et propre, complet nativement dans les navigateurs.

0
répondu Juha Tuomala 2018-04-20 07:41:39