Jythonって名前は知ってるけど、どういうものなのかは知らない…
JVM上で実装されたPythonであるJython。もしかして初めて知ったって人も多いのではないでしょうか。
こんにちは、Pythonが大好きなライターのフクロウです。
この記事では、JavaやScalaなどのJVM言語の資産が簡単にPythonから使える、Jythonについて紹介します。Jythonがどんなものなのかの紹介だけでなく、Jythonに関する記事等へのリンクもまとめています。また、JythonによらないJVM言語との連携方法についても紹介していきます。
この記事はこんな人のために書きました
- Jythonについて知りたい方
- Jythonの資料を探している方
- PythonとJVMの連携方法が知りたい方
Jythonについて、わかりやすく解説していますのでぜひ参考にしてください。
本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。
→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説
なお、その他のPythonの記事についてはこちらにまとめています。
Jythonってなんだろう
JythonはJVMで動くPython
もっとも使われているPython実装はC言語で実装されたCPythonです。多分皆さんもCPythonを利用していると思います。これに対して、JythonとはJavaで実装されたPythonです。
JavaはJVMで動作する言語であり、このような言語は他にもたくさんあります。
JVMで動作する言語の例
- Java
- Scala
- Clojure
- Kotlin
- Groovy
※JVMについて詳しく知りたい方は以下の記事をチェックしてください。
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ファイルとして公開されているので、これをダウンロードすることで利用できます。以下のページから最新版をダウンロードしましょう。
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を試してみるというのをオススメします。