qué - ¿Cuáles son algunas estrategias para escribir código python que funciona en CPython, Jython y IronPython?
que es jython (6)
Al tratar de apuntar a dos de estos entornos al mismo tiempo, puedo decir con seguridad que si tiene que usar una base de datos, etc., tendrá que escribir un código único para ese entorno. ¿Tienes una excelente manera de manejar esta situación?
@Daren Thomas: Estoy de acuerdo, pero debe usar el módulo de plataforma para determinar qué intérprete está ejecutando.
Si encuentra que necesita escribir un código único para un entorno, use pitones
import mymodule_jython as mymodule
import mymodule_cpython as mymodule
tiene esto en un módulo simple ('''' module_importer ''''?) y escribe tu código así:
from module_importer import mymodule
De esta forma, todo lo que necesita hacer es alterar module_importer.py
por plataforma.
Escribo el código para CPython y IronPython, pero el consejo también debería funcionar para Jython.
Básicamente, escribo todo el código específico de la plataforma en módulos / paquetes separados y luego importo el apropiado según la plataforma en la que me estoy ejecutando. (ver el comentario de cdleary arriba)
Esto es especialmente importante cuando se trata de las diferencias entre las implementaciones SQLite y si está implementando cualquier código GUI.
Estoy bastante seguro de que ya lo sabes, pero lamentablemente Jython no puede cargar los módulos de extensión c.
Lo # 1 de IMO: concéntrese en la seguridad de los hilos . El GIL de CPython hace que escribir código seguro para el hilo sea fácil porque solo un hilo puede acceder al intérprete a la vez. IronPython y Jython son un poco menos de mano.
Hay dos problemas principales en juego aquí ...
En primer lugar, que yo sepa, solo CPython tiene RAII: debe cerrar sus propios recursos en Jython, Ironpython, etc.
Y en segundo lugar, como se ha mencionado, es seguridad hilo.