2013年5月16日木曜日

LeiningenでIncanter

 前回でも書いたが,Clojureを始めるにあたってLeiningenをインストールした.LeiningenはClojureのビルドツールで,Clojure本体はもちろんのこと,基本となるライブラリも一緒にインストールでき,leinなるコマンドでプロジェクトの作成やコンパイルなどなどを簡単に行うことができる.なんといっても,使いたいライブラリを記述するだけで以下のレポジトリからダウンロードしてパスを通してくれるのが嬉しい.

 そんな感じで簡単に使えるライブラリの中でも,Incanterは秀逸.これはRのような行列演算,統計処理ライブラリで,さしずめPythonで言うところのNumpy, Scipy, Matplotlibのようなものです.RやScipyに比べると日本語の情報は少なく,始めにくいかもしれないけど,それなりに情報は見つかる(ここは結構まとまってる).

んで,始めたんだけど,Exception in thread "main" java.lang.IllegalAccessError: abs does not existってな例外が投げられて,すごい長いトレースバックが表示される.全然原因不明で小一時間苦しんだのち,この情報を発見.

プロジェクトの名前をincanterにしてたのが原因らしい.
(注:Incanter本家にもあるように,project.cljの:dependenciesにはincanterだけ書くのが安心.:dependencies のところに書くorg.clojure/clojureとincanterのバージョンの間には依存関係があるみたいなので,それぞれに適当なバージョンを指定するとうまく動かないかも.実はこれにもかなり時間をとられた…)
結局,名前を変えたらあっさりOK.


あーあ,コーヒーが冷めちゃったよ…

0 件のコメント: