java与python交互_Java与Python

有这么一个命题,就是说后端算法部门,使用了TensorFlow等机器学习算法进行了数据预测,现在有个需求,就是说要通过浏览器页面输入相关的计算参数,然后返回计算结果,理论上呢,python也可以作为一个web服务器来开发,但是算法部门的同事不会相关的技术。我后台语言使用的是java,那么如何通过java调用python进行计算呢?或者说,如何把python web集成到java的微服务框架中呢?python和java如何更好的交互,带着这样的问题,开始了这篇文章的探索。

主要有三种方式:

(1) 使用java的库JPython,直接执行python语言,但是Jpython也有缺点

不支持 Python3.0 以上的语法

python 源码中若引用的第三方库包含 C 语言扩展,将无法提供支持,如 numpy 等

(2) 使用Python作为微服务,提供web响应,实现起来简单。但是效率比较低,成本比较高。可以使用Tornado,还有Flask、Django等Python Web服务器。

(3) 将Python使用CPython库转换为c代码,然后使用JNI进行调用。虽然效率高,但是实现的步骤相当复杂,还不一定能成。

参考文章:

1.Java调用Python程序方法总结 (通过jython这个库直接执行python语句)

2.Python写的微服务如何融入Spring Cloud体系? (微服务的概念突破了语言的限制,所以也可以通过Python实现微服务,并融入到Java的生态中去。这篇文章使用了Tornado作为python的服务器实现,使用

你可能感兴趣的:(java与python交互)