Python双向Python爪哇桥
deephaven-jp的Python项目详细描述
Deephaven日元
这个包是由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
>>> ...
日元兑换记录
版本0.10(开发中)
- 通过设置环境变量使jpy与anaconda一起工作
pythonhome
来自Java 143。IRV博士的贡献。 - 固定:在使用接口时,常量不能正确地从java传递到python 140。IRV博士的贡献。
- 修正:在python 3.x中无法遍历dict 136。IRV博士的贡献。
版本0.9
这个版本包括来自支持github用户的一些贡献。谢谢大家!
修复
- 更正了来回传递给方法的复杂pyobject的java引用计数(问题120)。由sbarnoud修复。
- 修复了在Java8接口上找不到默认方法的问题(问题102)。由查尔斯P.赖特修复。
- 修正了从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(83)安装python
jpy
包。 这适用于Linux和OS X,默认情况下C编译器可用 并且应该在安装了visual studio 15的windows上工作。 Dave Voutila的贡献。 - java
pyobject
现在是可序列化的。Mario Briggs的贡献。 - 改进的varargs方法匹配。您可以传入一个数组(如 或者单个python参数,varargs方法调用的匹配是 每个参数的最小匹配。零长度数组(即 参数)也允许匹配值为10。
jpy.type_translations
实例化python对象时回调字典。jpy.verboseExceptions
启用完整的Java堆栈跟踪。- 更多的python异常被转换为相应的java类型。
- 全局变量和局部变量在使用pylib执行代码时被转换,以允许变量 在语句调用中使用;从Java中查询。
- 用于字典、列表和内省函数的pyobject包装器 您是否可以转换对象。
- 在处理python字符串和原语时支持不可赋值检查,以允许
匹配参数类型,如
java.lang.comparable
或java.lang.number
版本0.8
修复
- Java接口类型不包括扩展接口的方法(问题64)
- 在windows上为用户特定的python安装加载jpy dll失败(问题58)
- Java接口类型没有公开java.lang.object方法(问题57)
- java 1-arg静态方法与零arg非静态方法混淆(问题54)
- 在java数组上执行del语句时,python解释器崩溃(问题52)
- 从jav加载的python扩展a看不到python符号(linux)(问题38)
改进
- 现在可以使用JPY Java API来处理多个Python设备(第35版)。 可以使用一个名为"jpyutil.py"的工具来编写确定所需共享库的配置文件 对于给定的python版本。 一个新的Java系统属性"日元"用于指向所需的配置文件。
- 简化日元安装(第15期):
- 删除了将JVM路径添加到PATH(Windows)/LD U LIBRARY U PATH(UNIX)环境变量的需要 删除需要使用Maven
编译Java模块
- 如果java home已经指向jdk,则不需要指定jdk home环境变量
- 新的jpy.org.pyobject.executecode()方法
- 新的jpy.org.pymodule.getBuiltins()方法
- 新的jpy.org.pymodule.getmain()方法
- 新的jpy.org.pymodule.extendsyspath()方法
- <> JavaAPI配置更改:
- 系统属性jpy.jpylib:
- 系统属性jpy.jdlib:
- 系统属性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][--java_home java_home][--jvm_dll jvm dll]
- 新的jpyutil模块
- 为Java脚本引擎API添加了基本支持(发行第53版)
其他更改
- 从0.8版及更高版本切换到Apache2.0许可证(第60版)
0.7.5版
- 修复了C代码中导致不可预测崩溃的错误指针(问题43)
0.7.4版
- 修复了JPY因Unicode参数而崩溃的问题(问题42)
- 修复了JPY安装过程中偶尔出现的分段错误(问题40)
- 改进了Python错误的Java异常消息(第39版)
0.7.3版
0.7.2版
- 增加了与Python2.7的向后兼容性(问题34)。 <添加Java参数注释"输出"(问题36)。 这用于优化传递Java PrimePro数组的传递Python缓冲区参数。
- 已删除"jni_onload:…"窗体的调试打印文件
- 更正了jpy.array(type,init)函数的文档,该函数被称为jpy.array(type,length)
- 向Java类PyLB添加了新的诊断FYER标志。Diag
0.7.1版
- 在认识到JPY-0.7.zip发行版遗漏了大部分 所需的源文件和学习如何处理此案例。
版本0.7
- 初始版本。