2012-03-15 30 views
7

Tôi đang làm việc trên một khung công tác ngay bây giờ, một phần trong đó yêu cầu Jython. Tôi chỉ cần thêm một số âm mưu để nó bằng cách sử dụng MatPlotLib, mà không nhận ra rằng MatPlotLib là không tương thích với Jython. Vì hai phần này khá cô lập, và tôi sẽ sử dụng phần lớn chương trình bằng Python và chuyển một lượng nhỏ thông tin đến phần Jython (hoặc ngược lại), tôi tự hỏi liệu có cách đơn giản để làm điều này không, duy trì tính chất mô-đun của khuôn khổ. Ý tưởng?Gọi Jython từ Python (hoặc Vice Versa)

+0

Tôi nghĩ rằng execnet có thể không phải là một lựa chọn tồi. Suy nghĩ? – Eli

Trả lời

11

Tôi chưa sử dụng execnet cho bất kỳ điều gì nghiêm trọng, nhưng có vẻ như nó là một lựa chọn tốt cho bạn. execnet là một thư viện Python để thực thi phân tán trên các rào cản phiên bản, nền tảng và mạng.

Không khó để bắt đầu. Kịch bản này Jython đơn giản (mà gọi NumPy) làm việc cho tôi mà không có một xô:

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 

Output:

3 

Các tài liệu includes an example mà đi theo hướng ngược lại (một thông dịch viên CPython kết nối với một thông dịch viên Jython).

0

Không sử dụng Matplotlib với execnet ...

Nhưng ...

Đối với một tryout nhanh chóng với execnet (trên một nền tảng win32), bạn có thể sử dụng PortablePython2.7.2.1

PortablePython chứa Matplotlib và rất dễ cài đặt (và xóa)