【发布时间】:2019-09-06 18:57:51
【问题描述】:
所以我正在研究各种 Java 包,它们允许您通过 Java 运行 python 代码。 Jython 不处理相当于 python 3.6 的代码。所以基本上,我有用 python 3.6 编写的代码并且需要这样。我需要能够在没有 python 解释器的情况下通过 Java 使用该 python 代码。有这样的包吗? (请注意,我不会更改 python 代码,因为它是一个框架,并且传统上用于 python。 我有一个 python 框架,当然,传统上可以通过 python 代码使用,用于 python 3.6。相反,我想通过 Java 8 代码来使用它。现在我查看了 Jython,但它不能处理 3.6 或 3.x。我不会更改框架中的 python 代码。此外,Java 包应该能够在没有解释器的情况下运行 python 代码。有这样的事吗? Py4j 需要 python 解释器。
【问题讨论】:
-
"在没有解释器的情况下运行 python".. 嗯?这就像要求在没有 JVM 的情况下运行 Java。
-
为了让 Java 能够在没有解释器的情况下运行 python 需要它实现一个解释器。
-
@JustAFellowCoder:您可能需要两个操作系统进程,一个用于 Python 代码,一个用于 Java 代码,它们可以以某种方式进行通信(例如环回接口上的 TCP 套接字)。这是一个通用解决方案,适用于以任何语言编写的任何软件。当然,在这种情况下,Python 代码需要 Python 解释器(或等效的)来执行,而 Java 代码需要 JVM 来执行;这些环境将简单地存在于单独(并行)的操作系统进程中。
-
@JustAFellowCoder:是的,它叫做 Jython。
-
@JustAFellowCoder:据我所知,不存在用纯 Java 编写的 Python 解释器的非 Jython 实现。如果存在,它将成为 Jython 的竞争对手;如果它是开源的,它可能会被 Jython 项目吸收(反之亦然)。如果您需要,欢迎您自己编写这样的解释器!
标签: java python python-3.x