问题标签 [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.
java - 使用 Py4j 将 Python 对象发送到 Java
我正在尝试通过将 Python 对象发送到 Java来扩展本教程中的示例。虽然在 Python 和 Java 之间交换字符串对象的示例代码工作正常,但当我尝试用我自己的 Python 对象(事件)替换它时,会显示有关 object_id 的错误。
蟒蛇代码:
错误:
知道如何解决这个问题吗?
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 对两者都是相等的。
- 使用 line
import py4j
而不是from py4j.java_gateway import JavaGateway
不会给我任何错误,但我无法以这种方式使用 py4j(至少我不知道如何)
让我知道是否需要任何其他信息。非常感谢大家!
java - py4j:字典到 JAVA 映射
我目前正在使用 python3 访问 HBase。我正在做的方式是使用 py4j 调用我正在编写的访问 HBase 的 JAVA API。
我有一个与创建带有限定符和值的 Put 对象有关的问题。
我想将字典传递给需要哈希图的 JAVA 类。是否可以通过py4j。
我不想为每个列限定符迭代地调用 Put。我想将 dict 传递给 py4j,它应该在 JAVA 端作为 HashMap 接收。
您能否请一些提示/指示如何做到这一点...
java - 如果 py4j JVM 正在运行,那么在 python 中进行测试的最佳方法是什么?
如果运行 py4j 的 JVM 正在侦听所选(可能是默认)套接字,那么测试(在 python 脚本中)的好方法是什么?类似智能的东西ping
?
我可以尝试从我的 Java 类访问方法或对象并捕获产生的socket.error
异常,但这似乎有点像 hack。
在没有任何 JVM 的情况下创建一个 pythonJavaGateway
实例不会引发异常。我可能错过了一些东西,但我没有在docs中找到任何东西。
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)。
java - 如何使用 PY4J 从 python 调用 java
我想用 Py4J 库从 python 调用 java,
我收到以下错误:“Py4JNetworkError:尝试连接到 Java 服务器时出错”。似乎没有JVM在运行,如何解决?
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
我该如何运行它?
最终更新和解决方案:
应用前面的修复后,我终于运行代码:
代码在后台运行。要测试它:
java - py4j - 我将如何在 java 中调用 python 方法
我最近发现了 py4j 并且能够从 python 调用静态 java 方法。现在我想从 java 调用 python 方法。我找不到太多文档,所以这是我能想到的最后一个地方,它可能会告诉我它是否可能,以及如何。
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?