问题标签 [py4j]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
5308 浏览

java - 使用 Py4j 将 Python 对象发送到 Java

我正在尝试通过将 Python 对象发送到 Java来扩展本教程中的示例。虽然在 Python 和 Java 之间交换字符串对象的示例代码工作正常,但当我尝试用我自己的 Python 对象(事件)替换它时,会显示有关 object_id 的错误。

蟒蛇代码:

错误:

知道如何解决这个问题吗?

0 投票
1 回答
175 浏览

python - 在 web2py 控制器中导入 py4j 模块时出现 TypeError

我目前在尝试在 web2py 上使用 py4j 时遇到问题。这就是我试图在我的 web2py 控制器文件中导入它的方式:

加载页面时,这是我得到的错误:

但是,在终端上运行 Python 时,不会出现该问题。运行上面的导入行可以完美运行,并且与我的 Java 应用程序的通信也很完美。

有任何想法吗?

附加信息:

  • 在 Mac OS X 10.6.8 上运行
  • Python 版本 2.7.2
  • web2py 版本 2.3.2
  • web2py 和我的终端窗口都使用相同的 Python 版本。
  • sys.path 对两者都是相等的。
  • 使用 lineimport py4j而不是from py4j.java_gateway import JavaGateway不会给我任何错误,但我无法以这种方式使用 py4j(至少我不知道如何)

让我知道是否需要任何其他信息。非常感谢大家!

0 投票
1 回答
2825 浏览

java - py4j:字典到 JAVA 映射

我目前正在使用 python3 访问 HBase。我正在做的方式是使用 py4j 调用我正在编写的访问 HBase 的 JAVA API。

我有一个与创建带有限定符和值的 Put 对象有关的问题。

我想将字典传递给需要哈希图的 JAVA 类。是否可以通过py4j。

我不想为每个列限定符迭代地调用 Put。我想将 dict 传递给 py4j,它应该在 JAVA 端作为 HashMap 接收。

您能否请一些提示/指示如何做到这一点...

0 投票
1 回答
3344 浏览

java - 如果 py4j JVM 正在运行,那么在 python 中进行测试的最佳方法是什么?

如果运行 py4j 的 JVM 正在侦听所选(可能是默认)套接字,那么测试(在 python 脚本中)的好方法是什么?类似智能的东西ping

我可以尝试从我的 Java 类访问方法或对象并捕获产生的socket.error异常,但这似乎有点像 hack。

在没有任何 JVM 的情况下创建一个 pythonJavaGateway实例不会引发异常。我可能错过了一些东西,但我没有在docs中找到任何东西。

0 投票
4 回答
6216 浏览

java - Py4J 的开销比 Jython 和 JPype 大

在搜索从 Django 应用程序(python)运行 Java 代码的选项后,我发现 Py4J 是我的最佳选择。我尝试了 Jython、JPype 和 Python 子进程,它们中的每一个都有一定的限制:

  • 杰通。我的应用程序在 python 中运行。
  • JPype 有问题。您可以只启动一次 JVM,然后它无法再次启动。
  • Python 子进程。由于常规控制台调用,无法在 Python 和 Java 之间传递 Java 对象。

在 Py4J 网站上写着:

在性能方面,Py4J 的开销比之前的两种解决方案(Jython 和 JPype)都要大,因为它依赖于套接字,但如果性能对您的应用程序至关重要,那么从 Python 程序访问 Java 对象可能不是最好的主意。

在我的应用程序中,性能至关重要,因为我正在使用机器学习框架 Mahout。我的问题是:Mahout 是否也会因为 Py4J 网关服务器而运行得更慢,或者这种开销只是意味着从 Python 函数调用 Java 方法更慢(在后一种情况下,Mahout 的性能不会成为问题,我可以使用 Py4J)。

0 投票
3 回答
8681 浏览

java - 如何使用 PY4J 从 python 调用 java

我想用 Py4J 库从 python 调用 java,

我收到以下错误:“Py4JNetworkError:尝试连接到 Java 服务器时出错”。似乎没有JVM在运行,如何解决?

0 投票
1 回答
11949 浏览

java - py4J 最简单的例子

我在 Python 的虚拟环境中py4J使用 pip安装。conda我写了一个超级简单的例子AdditionApplication.java来测试py4J,但是编译失败,即

javac AdditionApplication.java

抱怨 GatewayServer未定义的失败。

我精通 Python,但不幸的是,我不懂 Java。我还需要提供什么?

万一这很重要,我安装了以下 Java 版本:

更新 1

在我添加:import py4j.GatewayServer;到文件顶部之后,我得到了一个不同的错误:

package py4j does not exist

更新 2

pip install py4j在 . 下留下了一个jar文件<PATH_TO_CONDA_ENVIRONMENT>/share/py4j/py4j0.8.1.jar。我已将其添加到我的类路径中:

它输出

AdditionApplication.class

我该如何运行它?

最终更新和解决方案:

应用前面的修复后,我终于运行代码:

代码在后台运行。要测试它:

0 投票
1 回答
1519 浏览

java - my_class.class 属性的 Py4J 问题。它是什么?

我正在尝试使用Py4J从 Python访问Java DAO方法,但遇到了一个奇怪的问题。我有以下文件。我可以正确编译,它似乎可以从 Python 使用Py4J工作:MyApplication.java

我可以用java MyApplication. 但是,当我在 Python 中运行以下命令时:

获取随机数是有效的(证明 Py4J 正在完成它的工作),但其中的操作调用失败:

为什么?

万一这很重要,我正在构建我的java文件,其中包含以下内容pom.xml

我应该在我的.class文件编译中包含一些额外的依赖项吗?这是一个错误Py4J吗?也许是不受支持的功能?

0 投票
1 回答
7270 浏览

java - py4j - 我将如何在 java 中调用 python 方法

我最近发现了 py4j 并且能够从 python 调用静态 java 方法。现在我想从 java 调用 python 方法。我找不到太多文档,所以这是我能想到的最后一个地方,它可能会告诉我它是否可能,以及如何。

0 投票
1 回答
1819 浏览

java - Java InputStream to Python (PY4J)

I'm running Java code in python using PY4J (http://py4j.sourceforge.net/).

My java function returns an InputStream and I would like to manipulate it in my python code:

Java code:

Python code:

How can I get the InputStream in python?

Should I convert it to something else in the java code before returning it to python?