javascript - tag - html.parser python 3
¿La mejor forma de integrar Python y JavaScript? (12)
¿Es posible integrar Python y JavaScript? Por ejemplo, imagina que quieres poder definir clases en JavaScript y usarlas desde Python (o viceversa). Si es así, ¿cuál es la mejor manera? Estoy interesado no solo si esto es posible sino si alguien lo ha hecho dentro de un proyecto o producto "serio" .
Supongo que sería posible usar Jython y Rhino , por ejemplo, pero tengo curiosidad de si alguien alguna vez lo hizo o no, y si hay soluciones para otras plataformas (especialmente CPython ).
¿Qué hay de pyjs ?
Del sitio web de arriba:
pyjs es una plataforma de desarrollo de aplicaciones de Internet enriquecidas (RIA) para Web y escritorio. Con pyjs puede escribir sus aplicaciones web impulsadas por JavaScript completamente en Python.
Aquí hay algo, un contenedor de Python alrededor del intérprete de SeaMonkey Javascript ... http://pypi.python.org/pypi/python-spidermonkey
Esta pregunta no es exactamente joven, pero se han presentado algunas alternativas:
- " Skulpt es una implementación completamente en el navegador de Python".
- Brython - "Una implementación de Python 3 para la programación web del lado del cliente"
- RapydScript - "JavaScript similar a Python sin la sobrecarga adicional o caprichos"
- Transcrypt : "Lean and mean Python 3.6 a un compilador de JavaScript con herencia múltiple, mapas de origen, comprobación de tipo estático y sobrecarga selectiva del operador". (también en Github )
Estuve jugando con Pyjon hace un tiempo y parece que puedo escribir la evaluación de Javascript directamente en Python y ejecuté programas simples ... Aunque no es una implementación completa de JS sino un experimento. Consiguelo aqui:
Hay un puente basado en JavaScriptCore (de WebKit), pero está bastante incompleto: http://code.google.com/p/pyjscore/
Muchos de estos proyectos mencionados anteriormente están muertos o agonizando, careciendo de actividad e interés por parte del autor. Interesante para seguir cómo se desarrolla esta área.
Para el registro, en la era de las implementaciones basadas en complementos, el campamento de KDE intentó resolver esto con un plugin y sin un lenguaje específico y creó el https://en.wikipedia.org/wiki/Kross_(software) Kross - en mi entendiendo que nunca despegó, incluso dentro de la comunidad misma.
Durante este tiempo de problemas con las gallinas y los huevos, las implementaciones basadas en JavaScript definitivamente son un camino a seguir. Tal vez en el futuro podamos ver el soporte completo y puro de Python de forma nativa en los navegadores.
Otra posibilidad es usar XPCOM, digamos en aplicaciones basadas en XUL (como Firefox, Thunderbird, Komodo, etc.)
Si solo te interesa compartir tipos de datos complejos entre javascript y python, echa un vistazo a jsonpickle . Envuelve las bibliotecas Python JSON estándar, pero tiene algunos conocimientos sobre serialización y deserialización de clases Python y otros tipos de datos.
Bastantes proyectos de Google App Engine han utilizado esta biblioteca. Joose y FirePython ambos incorporan jsonpickle.
También puede consultar el proyecto PyPy: tienen un compilador Python to (anything), que incluye Python a Javascript, C y llvm. Esto le permite escribir su código en Python y luego compilarlo en Javascript como lo desee.
Además, consulte el blog informativo:
Desafortunadamente, no puedes convertir Javascript a Python de esta manera. Parece funcionar muy bien en general, solían tener una versión Javascript (hecha de Python compilada) del juego Bub''n''Bros en línea (aunque el servidor ha estado inactivo por un tiempo).
Use Js2Py para traducir JavaScript a Python, esta es la única herramienta disponible :)
PyExecJS puede usar PyV8, Node, JavaScriptCore, SpiderMonkey, JScript.
>>> import execjs
>>> execjs.eval("''red yellow blue''.split('' '')")
[''red'', ''yellow'', ''blue'']
>>> execjs.get().name
''Node.js (V8)''
hay dos proyectos que permiten una transición "obvia" entre objetos python y javascript, con traducciones "obvias" de int o float a Number y str o unicode a String: PyV8 y, como ya ha mencionado un escritor: http://pypi.python.org/pypi/python-spidermonkey .
en realidad hay dos implementaciones de pyv8: el experimento original fue de Sebastien Louisel, y el segundo (en desarrollo activo) es por flier liu.
Mi interés en estos proyectos ha sido vincularlos a pyjs , un compilador de Python a JavaScript, para crear un acelerador de Python JIT.
entonces hay mucho por ahí, solo depende de lo que quieras hacer.