集成Jython Cpython

时间:2010-05-18 19:58:07

标签: python qt pyqt process jython

我即将开始一个项目,我可能会使用PyQt或Pyside。

我需要与提供C ++和Java API的第三方服务器软件接口。 Java API更容易使用,因为您获得了异常,使用C ++库可以获得段错误。此外,使用Jython自动绑定Java API,而不存在C ++ API的Python绑定。

那么,CPython PyQt客户端应用程序如何能够与这些Java API进行通信?你会怎么做呢?

您是否在客户端上有另一个单独的Java进程序列化/ pickles对象并通过套接字与PyQt进程通信?

我不想重新发明轮子......这些类型的东西是否有某种标准接口?我应该研究一些技术? RPC,Corba等?

谢谢, 〜埃里克

5 个答案:

答案 0 :(得分:4)

您可以通过JPype

从C-Python调用Java

http://jpype.sourceforge.net/

答案 1 :(得分:3)

请参阅我recommended执行的相关问题。如果你想用Python编写集成(像我一样),这似乎是解决这些问题的正确方法。

答案 2 :(得分:0)

如果你想保持完全的隔离并提高你的稳健性(第三方库下降而不是你的客户端,如果它是错误的我会建议那么)那么也许像CORBA这样的东西是前进的方式。不要忘记Java标配CORBA实现,因此您只需要从IDL生成C代理。

如果你想在进程中运行东西,那么

Swig可能会很有用。它简化了不同语言的组件绑定。请特别注意generates bindings for Python and Java

答案 3 :(得分:0)

如果标准不是重新发明轮子,则标准库中有SimpleXMLRPCServerxmlrpclib模块。他们也应该在Jython工作。

答案 4 :(得分:0)

似乎有Qt的Java绑定。 (谷歌:“Java Qt绑定”)

也许从Jython中使用它们会更简单。

Qt Jambi:http://en.wikipedia.org/wiki/Qt_Jambi

Qt Java:http://sourceforge.net/projects/qtjava/

(我自己没试过,所以不知道他们的工作有多好。)

here是一个相关的SO线程。