跳转到主要内容

允许Python动态访问任意Java对象(基于ctypes/cffi的Py4J)

项目描述

目前仅作为占位符(因为基础包jtypes.jvm仍在开发中)

jtypes.py4j

允许Python动态访问任意Java对象。

概述

jtypes.py4j 允许Python程序通过Java的本地调用接口(JNI)动态访问任意Java对象。

PyPI记录.

jtypes.py4j 是一个基于ctypescffi库的轻量级Python包。
这是一个几乎完全符合Barthelemy Dagenais的Py4J包的实现,通过使用JNI在纯Python中重新实现其功能,而不是通过自定义API服务在Python和Java之间进行转换。

关于Py4J

内容来自原始网站

Py4J允许在Python解释器中运行的Python程序动态访问Java虚拟机中的Java对象。方法调用就像Java对象位于Python解释器中一样,并且可以通过标准的Python集合方法访问Java集合。Py4J还允许Java程序回调Python对象。

以下是一个使用Py4J的简单示例。
以下Python程序从一个JVM创建了一个java.util.Random实例,并调用了它的一些方法。
>>> from py4j.java_gateway import JavaGateway
>>> gateway = JavaGateway()                  # connect to the JVM
>>> random = gateway.jvm.java.util.Random()  # create a java.util.Random instance
>>> number1 = random.nextInt(10)             # call the Random.nextInt method
>>> number2 = random.nextInt(10)
>>> print(number1,number2)
(2, 7)

需求

  • Java运行时(JRE)或Java开发工具包(JDK),以及NumPy。

安装

先决条件

要安装,请运行

python -m pip install --upgrade jtypes.py4j

为确保一切运行正常,您可以运行测试

python -m jt.py4j.tests

开发

访问开发页面

从源安装

克隆源代码并运行

python -m pip install ./jtypes.py4j

或在开发模式下

python -m pip install --editable ./jtypes.py4j

先决条件

  • 开发严格基于tox。要安装它,请运行

    python -m pip install tox

许可证

版权(c)2015-2018,Adam Karpierz

许可协议:BSD
请参阅附带的LICENSE文件。

作者

变更日志

0.10.8a1 (2018-11-08)

  • 与Py4J主分支(v.0.10.8)同步。

  • 更新所需的setuptools版本。

  • 设置和测试的一些小改进。

0.10.7a2 (2018-09-14)

  • 与Py4J主分支(v.0.10.7)同步。

0.10.7a1 (2018-06-15)

  • 与Py4J主分支(v.0.10.7)同步。

0.10.6a4 (2018-05-22)

  • 更新所需的setuptools版本。

0.10.6a3 (2018-02-26)

  • 设置和打包的改进和简化。

0.10.6a2 (2018-01-29)

  • 开发迁移到github。

  • 版本号与原始Py4J同步。

0.0.1a1 (2017-01-10)

  • 第一个alpha版本。

0.0.1a0 (2015-08-05)

  • 初始版本。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解有关安装包的更多信息。

源分布

jtypes.py4j-0.10.8a1.zip (646.3 kB 查看哈希值)

支持者

AWS AWS 云计算和安全赞助商 Datadog Datadog 监控 Fastly Fastly CDN Google Google 下载分析 Microsoft Microsoft PSF赞助商 Pingdom Pingdom 监控 Sentry Sentry 错误记录 StatusPage StatusPage 状态页面