gpt4 book ai didi

java - 从 Java 调用 Python 模块

转载 作者:太空狗 更新时间:2023-10-29 21:35:50 25 4
gpt4 key购买 nike

我有一个用 C 编写的图形库的 Python 接口(interface) - igraph(库的名称)。我的需要是从 Java 代码调用与这个图形库相关的 python 模块。事情是这样的,库的核心是c。这个核心已经导入到 Python 中,并且核心中嵌入的函数的接口(interface)在 Python 中可用。我项目的其余代码是用 Java 编写的,因此我也想通过 Java 调用图形函数。Jython - 允许你在 Java 中调用 python 模块是一个选项。我继续尝试 Jython 发现它在我的情况下不起作用,因为核心代码在 C 中,Jython 不支持任何在 python 中作为 c dll 导入的东西代码。我还考虑过选择直接在 c 中调用图形例程的方法。那是不通过 Python 代码的。我假设必须有一些东西可以让你从 Java 调用 c 代码,但是我在 C 中并不擅长因此我没有去做。我的最后一招似乎是使用 Java 从命令行执行 Python 解释器。但那是一种肮脏和无耻。另外,为了处理 Python 代码产生的结果,我必须将结果写入文件并用 java 读回。再次肮脏的方式。有什么可以建议我的吗?感谢每一位付出时间的人。


感谢 Igal 的回答。我看了一下。乍一看,它似乎只是在调用 python 脚本。

Jep jep = new Jep(false, SCRIPT_PATH, cl);
jep.set("query", query);
jep.runScript(SCRIPT_PATH + file);
jep.close();

这与我们通过 Java 代码从命令行调用 python 解释器时所做的是不是非常相似。

Runtime runtime = Runtime.getRuntime();
Process proc = runtime.exec("python test.py");

关注的是我如何使用 Python 脚本生成的结果。天真的方法是将它们写入文件并用 Java 读回。我正在寻找更聪明的方法。无论如何感谢您的建议。

最佳答案

没试过。但是我最近stumbledproject named Jepp 上您可能会感兴趣。

Jepp embeds CPython in Java. It is safe to use in a heavily threaded environment, it is quite fast and its stability is a main feature and goal.

关于java - 从 Java 调用 Python 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/454182/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com