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.Comparable
或java.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]
- 新的jpyutil模块
- 增加了对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 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | e59cf6b5f27cc293ab99c98de37a6118f689236c204355e23248465af1d5a41f |
|
MD5 | 30684b719afaa4af7e0555b0c6e55da9 |
|
BLAKE2b-256 | 15a68ae3aa21114235317b17226de5b6d9ef112d6b23eb655e417eec67f39924 |
关闭
deephaven_jpy-1.20211129.153-cp38-cp38-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 15605b678a051e66a608240b6e6336c63c00a1a48e0665133c029dd18d672782 |
|
MD5 | 4b049b40e7696ee148b063c233333e58 |
|
BLAKE2b-256 | 3c8ddd50944a9bb268a2c321d2d7ba11e42b410ab2a002b758ed1ba1133cdf44 |
关闭
deephaven_jpy-1.20211129.153-cp37-cp37m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | ea93be03e80a246dc0c816d9ac3f620f7ec90d271290a38de0b59e621a19b285 |
|
MD5 | c6a127f8a7171337073470eed457930c |
|
BLAKE2b-256 | 0241d4c1c6cf0834bb76e5936317d32824295fcfe5d85a50bd494d6b81e9a204 |
关闭
deephaven_jpy-1.20211129.153-cp37-cp37m-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 1545f5b980a7e0ce8966eb25056da430d757bd36b824b3f1c500f17e1533fb3c |
|
MD5 | aa15f6b8d4bd45d8eb19772cbff96b64 |
|
BLAKE2b-256 | 23e03df9766e567d3c221d55b4ed24e4b1fd85dfc2cfdf896afa78c5d5f6462d |
关闭
deephaven_jpy-1.20211129.153-cp36-cp36m-win_amd64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 7c3300fd75e541eeba4daaf0e3860dead06526f8f4353cd68e3bab83dfbd54e6 |
|
MD5 | 10cbee02c9108c770155696f3c70b8d5 |
|
BLAKE2b-256 | 86b52c31fac7f4e95cd7505651bb766c84e7074817a8688a25d84f104f68df16 |
关闭
deephaven_jpy-1.20211129.153-cp36-cp36m-macosx_10_14_x86_64.whl 的哈希值
算法 | 哈希摘要 | |
---|---|---|
SHA256 | 683cc8e1184abe0dabb38e14d89123f9938c8f0ccf2252ddced174657bd40f1c |
|
MD5 | 961208d8e7d48c4b303f9d0975d6bc37 |
|
BLAKE2b-256 | d7ba8d1505c09dce00dc48b7c502c8dc8c3165468577441b2162eb4f98f13b28 |