跳转到主要内容

Deephaven对jpy的双向Python-Java桥的分支

项目描述

Deephaven jpy

本包是Deephaven数据实验室维护的jpy https://github.com/bcdev/jpy.git的分支。

安装

  • 请注意,“deephaven-jpy”与“jpy”不兼容,因为它们都安装了具有相同名称的共享库。
  • 如果您已经安装了“jpy”,在安装“deephaven-jpy”之前应该将其删除。

    # Remove jpy if it is currently installed
    pip uninstall jpy

    # Install deephaven-jpy
    pip install deephaven-jpy

用法

>>> import jpy
>>> ...

jpy 更新日志


版本 0.10(开发中)

  • 通过设置环境变量PYTHONHOME使jpy与Anaconda兼容(来自Java #143)。由Dr-Irv贡献。
  • 修复:在使用接口时,Java到Python没有正确传递常量(问题#140)。由Dr-Irv贡献。
  • 修复:在Python 3.x中无法遍历字典(问题#136)。由Dr-Irv贡献。

版本 0.9

本版本包含来自GitHub用户的一些贡献。感谢大家!

修复

  • 修正了来回传递到方法的复杂数据类型PyObject的Java引用计数(问题#120)。sbarnoud修复。
  • 修复了Java 8接口中默认方法未找到的问题(问题编号#102)。修复由Charles P. Wright完成。
  • 修复了从Java调用Python时由于缺少sys.argv引起的错误(问题编号#81)。修复由Dave Voutila完成。
  • 修复了调用jpy.get_type()多次导致内存访问错误的问题(问题编号#74)。修复由Dave Voutila完成。
  • 修复了检索长值时的损坏问题(问题编号#72)。修复由chipkent完成。
  • 修复了停止Python会话时的致命错误(问题编号#70,#77)。修复由Dave Voutila完成。

显式空检查以避免JVM崩溃(问题编号#126)。修复由Geomatys完成。

改进

  • 现在可以使用pip直接从GitHub安装Python jpy包(问题编号#83)。这适用于默认提供C编译器的Linux和OS X,并且应该与安装了Visual Studio 15的Windows兼容。由Dave Voutila贡献。
  • Java PyObject现在是可序列化的。由Mario Briggs贡献。
  • 改进了Varargs方法匹配。您现在可以传入数组(如过去那样)或单个Python参数,varargs方法调用的匹配是每个参数的最小匹配。允许使用长度为零的数组(即没有参数),匹配值为10。
  • 当实例化Python对象时,使用jpy.type_translations字典进行回调。
  • jpy.VerboseExceptions启用完整的Java堆栈跟踪。
  • 更多Python异常被转换为相应的Java类型。
  • 当使用PyLib执行代码时,全局和局部变量会被转换,以便变量可以在语句调用之间使用;并且可以从Java中进行查询。
  • 为字典、列表和反射函数提供了PyObject包装器,以告知您是否可以转换对象。
  • 当处理Python字符串和原始类型时,支持isAssignable检查,以便允许匹配诸如java.lang.Comparablejava.lang.Number之类的参数类型。

版本0.8

修复

  • Java接口类型不包括扩展接口的方法(问题编号#64)
  • 在Windows上,对于用户特定的Python安装,加载jpy DLL失败(问题编号#58)
  • Java接口类型没有公开java.lang.Object方法(问题编号#57)
  • Java 1-arg静态方法与零参数非静态方法混淆(问题编号#54)
  • 在Java数组上执行del语句时,Python解释器崩溃(问题编号#52)
  • 从Java加载的Python扩展在Linux上无法看到Python符号(问题编号#38)

改进

  • 现在可以使用jpy Java API处理多个Python安装(问题编号#35)。可以使用名为'jpyutil.py'的工具编写配置文件,以确定给定Python版本所需的共享库。使用新的Java系统属性'jpy.config'来指向所需的配置文件。
  • 简化了jpy安装(问题编号#15)
    • 不再需要在Windows的PATH(Unix的LD_LIBRARY_PATH)环境变量中添加JVM路径
    • 不再需要使用Maven编译Java模块
    • 如果JAVA_HOME已经指向JDK,则不需要指定JDK_HOME环境变量
  • 添加了Python类型中包装Java类的'jclass'属性(问题编号#63)。
  • Java API扩展
  • 新的jpy.org.PyObject.executeCode()方法
  • 新的jpy.org.PyModule.getBuiltins()方法
  • 新的jpy.org.PyModule.getMain()方法
  • 新的jpy.org.PyModule.extendSysPath()方法
  • Java API配置更改
    • 系统属性jpy.jpyLib
    • 系统属性jpy.jdlLib
    • 系统属性jpy.pythonLib
    • 系统属性jpy.config
    • 加载自

      文件./jpyconfig.properties

      资源/jpyconfig.properties

      文件${jpy.config}

  • Python API配置更改
    • 加载自

      文件./jpyconfig.py

      资源${jpy-module}/jpyconfig.py

    • 属性java_home
    • 属性jvm_dll
  • Python API扩展
    • 新的jpyutil模块

      jpyutil.init_jvm(...)

      jpyutil.preload_jvm_lib(...)

    • 新的jpyutil工具

      用法:jpyutil.py [-h] [--out OUT] [--java_home JAVA_HOME] [--jvm_dll JVM_DLL]

  • 增加了对JavaScript引擎API的基本支持(问题编号#53)

其他更改

  • 从版本0.8开始切换到Apache 2.0许可(问题编号#60)

版本0.7.5

  • 修复了C代码中的坏指针,这可能导致不可预测的崩溃(问题编号#43)

版本0.7.4

  • 修复了jpy在接收Unicode参数时崩溃的问题(问题编号#42)
  • 修复了jpy安装过程中偶尔发生的段错误(问题编号#40)
  • 改进了Python错误上的Java异常信息(问题编号#39)

版本0.7.3

  • 修复了Java原始数组参数偶尔未由相关的Python缓冲区参数初始化的问题(问题编号#37)

版本0.7.2

  • 添加了对Python 2.7的向后兼容性(问题编号#34)。
  • 添加了Java参数注解'output'(问题编号#36)。这用于优化在期望Java原始数组的情况下传递Python缓冲区参数。
  • 移除了“JNI_OnLoad: ...”形式的调试打印
  • 更正了jpy.array(type, init)函数的文档,该函数被描述为jpy.array(type, length)
  • 移除了从Java代理调用Python时发生的控制台转储
  • 更新了Java API文档,并将其添加到Sphinx文档文件夹(doc/_static/java-apidoc)
  • 向Java类PyLib.Diag添加了新的诊断F_ERR标志
  • Java类PyLib不再可实例化

版本0.7.1

  • 更新了README并添加了MANIFEST.in,因为在识别到jpy-0.7.zip分发缺少大多数所需源文件并学习如何处理这种情况后。

版本0.7

  • 初始版本。

项目详情


下载文件

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

源代码分发

本发行版没有可用的源代码分发文件。请参阅生成分发存档的教程。

构建分发

deephaven_jpy-1.20211129.153-cp38-cp38-win_amd64.whl (67.8 kB 查看哈希)

上传 CPython 3.8 Windows x86-64

deephaven_jpy-1.20211129.153-cp38-cp38-macosx_10_14_x86_64.whl (75.8 kB 查看哈希)

上传 CPython 3.8 macOS 10.14+ x86-64

deephaven_jpy-1.20211129.153-cp37-cp37m-win_amd64.whl (67.6 kB 查看哈希)

上传 CPython 3.7m Windows x86-64

deephaven_jpy-1.20211129.153-cp37-cp37m-macosx_10_14_x86_64.whl (116.4 kB 查看哈希)

上传于 CPython 3.7m macOS 10.14+ x86-64

deephaven_jpy-1.20211129.153-cp36-cp36m-win_amd64.whl (113.4 kB 查看哈希值)

上传于 CPython 3.6m Windows x86-64

deephaven_jpy-1.20211129.153-cp36-cp36m-macosx_10_14_x86_64.whl (116.4 kB 查看哈希值)

上传于 CPython 3.6m macOS 10.14+ x86-64

由以下组织支持

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