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 ).
12 réponses
voici quelque chose, un emballage Python autour de L'interpréteur Javascript SeaMonkey... http://pypi.python.org/pypi/python-spidermonkey
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.
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 )
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.
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.
il y a un pont basé sur JavaScriptCore (de WebKit), mais il est assez incomplet: http://code.google.com/p/pyjscore/
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.
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).
une autre possibilité est D'utiliser XPCOM, disons dans des applications basées sur XUL (comme firefox, thunderbird, komodo etc.)
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:
utiliser Js2Py pour traduire JavaScript en Python, c'est le seul outil disponible:)
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.