Вызов Jython из Python (или наоборот) - PullRequest
8 голосов
/ 16 марта 2012

Я сейчас работаю над фреймворком, часть которого требует Jython. Я просто добавил некоторые графические объекты, используя MatPlotLib, не осознавая, что MatPlotLib несовместим с Jython. Поскольку эти две части довольно изолированы, и я бы прекрасно запустил большую часть программы на Python и передал небольшое количество информации в часть Jython (или наоборот), мне было интересно, есть ли простой способ сделать это, хотя поддержание модульной природы каркаса. Идеи?

Ответы [ 2 ]

11 голосов
/ 22 марта 2012

Я не использовал 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

Документация включает пример , который идет в противоположном направлении (интерпретатор CPython, подключающийся к интерпретатору Jython).

0 голосов
/ 16 марта 2012

Не использовал MatPlotLib с execnet ...

Но ...

Для быстрой проверки с execnet (на платформе win32) можно использовать PortablePython2.7.2.1

PortablePython содержит MatPlotLib и прост в установке (и удалении)

...