2012-03-15 11 views
7

Pracuję obecnie nad frameworkiem, którego część wymaga Jython. Właśnie dodałem kilka plotek do niego za pomocą MatPlotLib, nie zdając sobie sprawy, że MatPlotLib jest niekompatybilny z Jythonem. Ponieważ te dwie części są dość izolowane, a ja byłbym w porządku, uruchamiając większość programu w Pythonie i przekazując niewielką ilość informacji do części Jython (lub odwrotnie), zastanawiałem się, czy istnieje prosty sposób, aby to zrobić, podczas gdy zachowanie modułowej natury struktury. Pomysły?Wywoływanie Jython z Python (lub Vice Versa)

+0

Myślę, że execnet może nie być złym wyborem. Myśli? – Eli

Odpowiedz

11

Nie używałem execnet do niczego poważnego, ale wydaje się całkiem możliwe, że jest to dobry wybór dla ciebie. execnet jest biblioteką Pythona do rozproszonego wykonywania przez barierę wersji, platformy i sieci.

Nie jest trudno zacząć. Ten prosty skrypt Jython (który wywołuje NumPy) pracował dla mnie bez zarzutu:

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 

wyjściowa:

3 

Dokumentacja includes an example że idzie w przeciwnym kierunku (interpreter CPython podłączeniu do interpretera Jython).

0

nie używaliśmy matplotlib z execnet ...

Ale ...

Dla szybkiego tryout z execnet (na platformie win32) można użyć PortablePython2.7.2.1

PortablePython zawiera matplotlib i jest łatwy w instalacji (i usunięciu)

Powiązane problemy