JavaによるPython実装「Jython」初学者向けまとめ

Javaの資産をPythonから使いたい。
Jythonって名前は知ってるけど、どういうものなのかは知らない…

JVM上で実装されたPythonであるJython。もしかして初めて知ったって人も多いのではないでしょうか。

こんにちは、Pythonが大好きなライターのフクロウです。

この記事では、JavaやScalaなどのJVM言語の資産が簡単にPythonから使える、Jythonについて紹介します。Jythonがどんなものなのかの紹介だけでなく、Jythonに関する記事等へのリンクもまとめています。また、JythonによらないJVM言語との連携方法についても紹介していきます。

この記事はこんな人のために書きました

  • Jythonについて知りたい方
  • Jythonの資料を探している方
  • PythonとJVMの連携方法が知りたい方

Jythonについて、わかりやすく解説していますのでぜひ参考にしてください。

Jythonってなんだろう

JythonはJVMで動くPython

もっとも使われているPython実装はC言語で実装されたCPythonです。多分皆さんもCPythonを利用していると思います。これに対して、JythonとはJavaで実装されたPythonです。

jython.github.io

JavaはJVMで動作する言語であり、このような言語は他にもたくさんあります。


JVMで動作する言語の例

  • Java
  • Scala
  • Clojure
  • Kotlin
  • Groovy


※JVMについて詳しく知りたい方は以下の記事をチェックしてください。
【Java入門】JVMとは?わかりやすく解説!
更新日 : 2019年5月23日

Jythonを使うことで、PythonからJavaなどで書かれたプログラム資産を簡単に使うことが出来ます。

Jythonのすごいところ

Jythonを使うことで、PythonからJavaの資産を使う、JavaからPythonの資産を使うなどが出来ます。また、オープンソースの画像処理ソフトであるImageJでは、Jythonを使ってスクリプティングができるようです。

Jythonの注意点

Jythonなどを始めとした、CPython以外のPython実装にだいたい当てはまることなのですが、情報を集めるのが大変です。検索上位に引っかかる情報が数年前のものであったり、書籍が少なかったり(更にやっぱり古かったり)します。

また、PythonからJavaの機能を呼び出すのは、py4jのようなライブラリを使うことでCPythonからでも出来てしまいます。個人的にはできるだけCPythonでできることはCPythonでやってしまうのをおすすめします。(py4jについては後述します)

「Jython」と検索して出てくる公式サイトはwww.jython.orgです。こちらよると、2015年にJython 2.7.0 Final Releasedとして2.7が出て以降、新しいバージョンは公開されていない用に見えます。

ですが実はjython.github.ioに新しいウェブサイトがあります。こちらで2.7.1 Final Releasedとして後継が公開されています。

Jythonのインストール

インストーラを使った方法

Jythonはjarファイルとして公開されているので、これをダウンロードすることで利用できます。以下のページから最新版をダウンロードしましょう。

https://jython.github.io/download

 

Jythonをインストールして使う場合はJython Installerを、インストールせずに使いたい場合はJython Standaloneをダウンロードして使ってください。

pyenvを使った方法

Pythonのバージョン管理ソフトpyenvを使えば、コマンドライン(端末エミュレータ上で)インストールを行うことができます。まずはpyenvでインストールできるPythonのバージョンを、以下のコマンドで確認してみましょう。

pyenv install --list

すると様々なバージョンのPythonが列挙されます。この中に表示されたものはpyenvからインストールできるので、jythonの最新版をインストールしてみましょう。

[出力結果を抜粋]
  jython-dev
  jython-2.5.0
  jython-2.5-dev
  jython-2.5.1
  jython-2.5.2
  jython-2.5.3
  jython-2.5.4-rc1
  jython-2.7.0
  jython-2.7.1

ここではjython-2.7.1が最新版ですね。インストールは以下のコマンドを使います。

# pyenv install pythonのバージョン
pyenv install jython-2.7.1

ちなみに、この記事のテストにはMacを使っています。jythonをこの方法でインストールする場合でJavaがまだ入っていない場合は、Javaのインストールを進められます。Java自体がないとJythonも使えないのでインストールしておきましょう。

Jythonの使い方

Jythonを使ってみたい!という方に向けて、Jythonのドキュメント集をまとめました。

Jythonのドキュメント集

The Definitive Guide to Jython、Jythonの最新版のドキュメントです。大体のことはここを読めばわかりますよ!


jythonのリポジトリです。ドキュメントを読んでもわからないことはコードを読むしかない場合もあります。


Gitとはまた違ったバージョン管理ソフトであるMercurial。Jythonはここで開発されています。


Djangoのドキュメントです。PythonのWebフレームワークであるDjangoをJythonで使う方法を紹介しています。

2008年に出版されたJythonの和書です。日本語で学びたい方向けです。

Oracleが公開している「Jythonの基礎̶成熟した代替言語を新鮮な視点で捉える」という題のPDFです。こちらも日本語なのでわかりやすいです。ただし、PDF内のリンクが切れているようなので注意してください。

Oracleが公開している「Jython 2.7:PythonとJavaの融合」という題のPDFです。こちらも日本語です。2015年のものなので比較的新しく、オススメです。

Jython以外のPython⇔JVM連携

Jython以外にも、Python⇔JVM連携ができるツールがあります。

JVMで使えるPython3「cafebabepy」

まずはJavaによるPython 3実装のcafebabepyです。

JythonはPython 2系なので、Python 3系が使いたいという方にはこちらのほうがおすすめですね。

PythonからJarファイルのメソッドが実行できる「Py4J」

Py4JはCPythonからJarファイルのメソッドを実行する事ができるPythonライブラリです。

Py4JはJavaを起動させることはできないので、実際に使うときはJVMを自分で起動させておいてから使う必要があります。使い慣れたCPythonでJavaと連携することができるので、ここで紹介したものの中では一番お手軽な方法だと思います。

まとめ

この記事ではJVMで動くPythonであるJythonを紹介しました。

「JVMのプログラムをPythonから使える」ということに魅力を感じるならば、Jython(またはcafebabepy)を勉強することは非常に楽しいことでしょう。また、Py4Jなどのライブラリを使うことで、CPythonからJavaを使うことも可能です。

用途に合わせて使い分けるのが良いと思います。まずはPy4Jを試してみて、もっと高度なことをしたければJython/cafebabepyを試してみるというのをオススメします。

LINEで送る
Pocket

「プログラミング、右も左もわからない…」という方にオススメ

当プログラミングスクール「侍エンジニア塾」では、これまで6000人以上のエンジニアを輩出してきました。

その経験を通してプログラミング学習に成功する人は、「目的目標が明確でそれに合わせた学習プランがあること」「常に相談できる人がそばにいること」「自己解決能力が身につくこと」この3つが根付いている傾向を発見しました。

侍エンジニア塾は上記3つの成功ポイントを満たすようなサービス設計に磨きをかけております。

cta_under_bnr

「自分のスタイルや目的に合わせて学習を進めたいな」とお考えの方は、ぜひチェックしてみてください。

書いた人

フクロウ

フクロウ

第一言語はPythonです。
皆さんRustやりましょう。