2009-12-23 5 views
7

Estoy bastante seguro de que las secuencias de comandos python funcionarán en las tres, pero quiero asegurarme. He leído aquí y allá sobre editores que pueden escribir CPython, Jython, IronPython y estoy esperando que esté muy interesado en la distinción.¿Los scripts CPython, IronPython, Jython son compatibles entre sí?

Mi situación es que tengo 3 api diferentes que quiero probar. Cada api realiza la misma función de código de funcionalidad, pero son diferentes en la implementación. Estoy escribiendo envoltorios alrededor de las API de cada idioma. Cada contenedor debe exponer la misma funcionalidad e implementación a python usando Boost :: python, Jython e IronPython.

Mi pregunta es, ¿un script de python escrito usando estos métodos expuestos (que son comunes para cada idioma) funciona en los tres "sabores" de Python?

Como dije, estoy bastante seguro de que la respuesta es 'Por supuesto', pero necesito asegurarme antes de dedicarle demasiado tiempo a trabajar en esto.

Respuesta

10

La respuesta corta es: A veces.

Algunos proyectos construidos sobre IronPython pueden no funcionar con CPython, y algunos módulos de CPython que están escritos en C (por ejemplo, NumPy) no funcionarán con IronPython.

En una nota similar, aunque Jython implementa la especificación del lenguaje, tiene varias incompatibilidades con CPython (por ejemplo, carece de algunas partes de la biblioteca estándar CPython, y puede importar paquetes y clases de biblioteca estándar Java, como Swing)

Entonces, sí, siempre y cuando evite las incompatibilidades.

+0

Ok, he leído algunos mensajes sobre la detección de qué biblioteca está utilizando en Python, por lo que siempre que las incompatibilidades se mantengan al mínimo, esto debería funcionar bastante bien. gracias – Charles

+2

@Charles: Además, cada uno de los otros intérpretes de Python (Jython, IronPython) va a tener una buena documentación que detalla dónde no se ajusta a CPython. Si observa esos documentos, podrá contar rápidamente tan pronto como pase más allá de lo que funciona en los tres. –

+0

diffs entre ipython y cpython: http://en.wikipedia.org/wiki/IronPython#Differences_with_CPython parece bastante pequeño. – zinking

Cuestiones relacionadas