从Python(或反之亦然)调用Jython

时间:2012-03-15 20:10:28

标签: python jython

我正在研究一个框架,其中一部分需要Jython。我刚刚使用MatPlotLib添加了一些绘图,但没有意识到MatPlotLib与Jython不兼容。由于这两个部分相当孤立,我可以很好地运行Python中的大部分程序并将少量信息传递给Jython部分(反之亦然),我想知道是否有一种简单的方法可以做到这一点,而保持框架的模块化特性。想法?

2 个答案:

答案 0 :(得分:11)

我没有将execnet用于任何严肃的事情,但它似乎很可能对你来说是一个不错的选择。 execnet是一个Python库,用于跨版本,平台和网络障碍进行分布式执行。

开始并不难。这个简单的Jython脚本(调用NumPy)对我来说没有任何障碍:

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

输出:

3

相反方向的文档includes an example(连接到Jython解释器的CPython解释器)。

答案 1 :(得分:0)

没有将MatPlotLib与execnet一起使用......

但是......

使用execnet进行快速试用(在win32平台上),您可以使用PortablePython2.7.2.1

PortablePython包含MatPlotLib,易于安装(和删除)