从java调用python

时间:2017-12-07 22:57:07

标签: java python jython

我需要从Java调用一些Python代码。

我知道Jython存在或者Java有自己的Python解释器。

事实是,Python代码使用一些原生(C)编译的代码,甚至在GPU上运行。

所以我可以把它分成两个问题:

  1. Jython或Java的Python解释器是否支持此功能?也就是说,Python代码(当从Java调用时)将与所有C和GPU部分一起运行,因此将以与其自身一样快的速度运行。
  2. 如果上述两种方式都不支持,有没有其他方法可以做到这一点?
  3. P.S。如果这有帮助,虽然我认为这是无关紧要的,但我需要运行的代码是来自Keras的高度GPU / C优化神经网络(下面是TensorFlow)。我绝对不能运行唯一的Python解释版本。

1 个答案:

答案 0 :(得分:1)

目前jython不支持本机编译的python模块。为了运行本机模块,您需要从java访问本机python(cpython)解释器。有几个使用JNI访问cpython解释器的开源项目。您可以查看的三个项目是JEPJPYJyNI。关于GPU访问,我只有使用JEP的经验,我已经使用PyCUDA在GPU上执行代码。虽然我没有掌握tensorflow的个人经验,但我知道JEP邮件列表上有关于使用JEP和tensorflow的帖子,所以我相信还有其他项目成功使用了这个组合。