2012-03-15 7 views
7

Şu an bir çerçeve üzerinde çalışıyorum, bunun bir kısmı Jython gerektirir. MatPlotLib'in Jython ile uyumsuz olduğunu fark etmeden MatPlotLib kullanarak biraz çizim yaptım. Bu iki bölüm oldukça yalıtılmış olduğundan ve Python'daki programın çoğunu iyi çalıştıracağım ve Jython kısmına az miktarda bilgi aktardığımdan (ya da tam tersi), bunu yapmanın basit bir yolu olup olmadığını merak ediyordum. çerçevenin modüler doğasını korumak. Fikirler?Python'dan (veya Vice Versa'dan) Jython'u çağırma

+0

Bence execnet kötü bir seçim olmayabilir. Düşünceler? – Eli

cevap

11

Yüklemesi kolay ve kaldırılması kolay execnet'u ciddi bir şey için kullanmamıştım, ancak sizin için iyi bir seçim olması oldukça olası görünüyor. execnet, sürüm, platform ve ağ engelleri genelinde dağıtılmış yürütme için bir Python kütüphanesidir.

Başlamak zor değil. Bu basit Jython komut dosyası (yani numpy çağırır) aksamadan benim için çalıştı:

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 

Çıktı:

3 

ters yönde giden belgeler includes an example (a CPython tercüman bir Jython yorumlayıcısı bağlanırken).

0

Eğer PortablePython2.7.2.1

PortablePython Matplotlib içeren kullanabilirsiniz (bir win32 platformunda) execnet ile hızlı bir seçmelerine için ...

... execnet ile

Ama Matplotlib kullanmak vermedi