Python for the Java Platform
This is the development repository of Jython, the implementation of Python in Java. Only version 2.7 of Python can be supported at present (but watch this space for a 3.x version).
Along with good (not perfect!) language and runtime compatibility with CPython 2.7, Jython 2.7 provides substantial support of the Python ecosystem. This includes built-in support of pip/setuptools (you can use
bin/pipif the targets do not include
Cextensions) and a native launcher for Windows (
bin/jython.exe) that works essentially like the
Jim Baker presented a talk at PyCon 2015 about Jython 2.7, including demos of new features: https://www.youtube.com/watch?v=hLm3garVQFo
See ACKNOWLEDGMENTS for details about Jython's copyright, license, contributors, and mailing lists. Consult NEWS for detailed release notes, including bugs fixed, backward breaking changes, and new features. We sincerely thank all who contribute to Jython, by bug reports, patches, pull requests, documentation changes and e-mail discussions.
The project uses Git for version-control, and the master repository is at https://github.com/jython/jython, You should clone this repository to create a buildable copy of the latest state of the Jython source. The previously authoritative repository at https://hg.python.org/jython is not now in use, remaining frozen at v2.7.2.
Jython is normally built using
ant. It is necessary to have Ant and at least a Java 8 SDK on the path. To build Jython in development, we generally use the command:
antThis leaves an executable in
dist/binthat you may run from the check-out root with:
anttargets exist, notably
You can test your build of Jython (by running the regression tests), with the command:
dist/bin/jython -m test.regrtest -e -m regrtest_memo.txt
If you want to install a snapshot build of Jython, use the command:
ant installerThis will leave you with a snapshot installer JAR in
dist, that you can run with:
java -jar jython-installer.jarfor the graphical installer, or:
java -jar jython-installer.jar --consoleFor the console version. (A
--helpoption gives you the full story.)
Experimentally, we have a Gradle build that results in a family of JARs, and a POM. This is intended to provide the Jython core in a form that Gradle and Maven users can consume as a dependency. Invoke this with:
PS> .\gradlew publishand a JAR and POM are delivered to
Whereas the JARs delivered by the installer are somewhat "fat", embedding certain dependencies in shaded (renamed) form, the JAR from the Gradle build is "spare" and cites its dependencies externally through a POM. The project would like to know if this is being done suitably for downstream use.