Bi-directional Python-Java bridge
Project description
jpy is a bi-directional Python-Java bridge which you can use to embed Java code in Python programs or the other way round. It has been designed particularly with regard to maximum data transfer speed between the two languages. It comes with a number of outstanding features:
Fully translates Java class hierarchies to Python
Transparently handles Java method overloading
Support of Java multi-threading
Fast and memory-efficient support of primitive Java array parameters via Python buffers (e.g. numpy arrays)
Support of Java methods that modify primitive Java array parameters (mutable parameters)
Java arrays translate into Python sequence objects
Java API for accessing Python objects (jpy.jar)
jpy has been tested with Python 2.7, 3.3, 3.4 and Oracle Java 7 and 8 JDKs.
The initial development of jpy has been driven by the need to write Python extensions to an established scientific imaging application programmed in Java, namely the BEAM toolbox funded by the European Space Agency (ESA). Writing such Python plug-ins for a Java application usually requires a bi-directional communication between Python and Java since the Python extension code must be able to call back into the Java APIs.
For more information please have a look into jpy’s
jpy Changelog
Version 0.7.5
Fixed bad pointer in C-code which caused unpredictable crashes (issue #43)
Version 0.7.4
Fixed a problem where jpy crashes with unicode arguments (issue #42)
Fixed segmentation fault occurring occasionally during installation of jpy (issue #40)
Improved Java exception messages on Python errors (issue #39)
Version 0.7.3
Fixed problem where a Java primitive array argument has occasionally not been initialised by a related Python buffer argument (issue #37)
Version 0.7.2
Added backward compatibility with Python 2.7 (issue #34).
Added Java parameter annotation ‘output’ (issue #36). This is used to optimise passing Python buffer arguments where Java primitive arrays are expected.
Removed debugging prints of the form “JNI_OnLoad: …”
Corrected documentation of jpy.array(type, init) function, which was said to be jpy.array(type, length)
Removed console dumps that occurred when calling from Java proxies into Python
Updated Java API documentation and added it to Sphinx doc folder (doc/_static/java-apidoc)
Added new diagnostic F_ERR flag to Java class PyLib.Diag
Java class PyLib is no longer instantiable
Version 0.7.1
Updated README and added MANIFEST.in after recognising that the jpy-0.7.zip distribution misses most of the required source files and learning what to do on this case.
Version 0.7.0
Initial version.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.