Jython is a Java-based Python implementation and the most seamless way to integrate Python and Java. It achieves high efficiency by compiling Python code to Java bytecode and thus letting Java's JIT optimize it - an approach that enables Python code to call Java functions or to subclass Java classes. It enables Python code to leverage Java's multithreading features and utilizes Java's built-in garbage collection (GC). However, it currently does not support CPython's C-API and thus does not support native extensions like NumPy and SciPy. Since most scientific code depends on such extensions, it is not runnable with Jython. Jython Native Interface (JyNI) is a compatibility layer that aims to provide CPython's native C extension API on top of Jython. JyNI is implemented using the Java Native Interface (JNI) and its native part is designed to be binary compatible with existing extension builds [...].
翻译:Jython 是一种基于 Java 的 Python 执行方式, 也是整合 Python 和 Java 最顺畅的方法。 它通过将 Python 代码编译为 Java 字节码, 从而让 Java 的 JIT 优化它, 使 Python 代码能够调用 Java 函数或亚类 Java 类 。 它使 Python 代码能够利用 Java 的多读功能并利用 Java 的内在垃圾收集 。 但是, 它目前不支持 CPython 的 C- API 。 因此, 它不支持 NumPy 和 SciPy 这样的本地扩展 。 由于大多数科学代码都依赖于这种扩展, 它不能与 Jython 连接。 Jython 土著界面( Jynon ) 是一个兼容性层, 目的是在 Jython 的顶端提供 CPE 本地的本地扩展 API 。 JyNI 使用 Java 土著界面, 其本地部分的设计设计是 与现有扩展建筑相容的二元 [.] [.] 。