2012-03-15 16 views
7

Estoy trabajando en un marco en este momento, parte del cual requiere Jython. Acabo de agregar algunos gráficos usando MatPlotLib, sin darme cuenta de que MatPlotLib es incompatible con Jython. Dado que estas dos partes están bastante aisladas, y estaría bien ejecutar la mayor parte del programa en Python y pasar una pequeña cantidad de información a la parte de Jython (o viceversa), me preguntaba si hay una manera simple de hacerlo, mientras manteniendo la naturaleza modular del marco. Ideas?Invocar Jython desde Python (o viceversa)

+0

Estoy pensando en que execnet podría no ser una mala elección. ¿Pensamientos? – Eli

Respuesta

11

No he utilizado execnet para nada serio, pero parece bastante posible que sea una buena opción para usted. execnet es una biblioteca de Python para ejecución distribuida a través de barreras de versión, plataforma y red.

No es difícil comenzar. Este sencillo script Jython (que invoca NumPy) me funcionó sin problemas:

import execnet 

gw = execnet.makegateway("popen//python=python") 
channel = gw.remote_exec(""" 
    from numpy import * 
    a = array([2,3,4]) 
    channel.send(a.size) 
""") 

for item in channel: 
    print item 

Salida:

3 

La documentación includes an example que va en la dirección opuesta (un intérprete de CPython la conexión a un intérprete Jython)

0

no utilizó matplotlib con execnet ...

Pero ...

Para una prueba rápida con execnet (en una plataforma Win32) que puede utilizar PortablePython2.7.2.1

PortablePython contiene el matplotlib y es fácil de instalar (y eliminar)

Cuestiones relacionadas