首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从java运行python脚本(带有numpy依赖项)

从java运行python脚本(带有numpy依赖项)
EN

Stack Overflow用户
提问于 2011-10-25 23:19:06
回答 3查看 2.1K关注 0票数 1

在java应用程序中,我需要使用目前在python中实现的特定图像处理算法。知道这个脚本使用Numpy库之后,最好的方法是什么?

我已经尝试过使用jythonc编译器将脚本编译成java,但它似乎不支持像Numpy这样的本地库依赖。我也尝试过使用Jepp,但我在导入Numpy时也得到了一个ImportError。

有什么建议吗?

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2011-10-25 23:58:06

如果你使用的是Numpy,你可能只能使用C Python,因为它是一个编译的扩展。我建议将图像保存到磁盘上,可能是作为临时文件,然后调用Python作为子进程。如果您正在处理二进制数据,您甚至可以尝试在内存中映射Java中的数据,并将其传入到子进程的路径中。

或者,根据您的环境,您可以在Python中设置一个简单的数据处理服务器,该服务器接受请求并返回处理过的数据。

票数 3
EN

Stack Overflow用户

发布于 2011-10-26 00:15:01

虽然Joe的答案可能很简单,但如果映像很大(2个完整的写入和读取),则会出现性能问题。我不是Java专家,但是根据http://wiki.cacr.caltech.edu/danse/index.php/Communication_between_Java_and_Python#Communication_through_bindings的说法,您可以开发c <--> java绑定。您可以对python执行相同的操作(如果您不想学习python c api,则可以使用ctypes或cython )。

有了这些,你就可以用c构建一个漂亮的python <--> java桥,并传递一个指向图像数据的指针(这将比在硬盘上写入和读取它更快)。

票数 0
EN

Stack Overflow用户

发布于 2017-04-08 01:36:11

为了在Java进程中使用numpy,Jep现在支持numpy。您也可以使用jpyJyNI

使用这些库,您可以在进行计算时将图像作为字节数组和ndarray在Java和Python之间传递。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7891586

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档