CV・NLPハマりどころメモ

画像認識と自然言語処理を研究する中でうまくいかなかったことと、その対策をまとめる自分用メモが中心。

Ubuntu16.04にjuliaをIDE付きでインストールするまで

f:id:Vastee:20181119154857p:plain

同僚から譲り受けたプログラムがJulia言語で書かれていた為, 急遽Julia環境を作成することになってしまった. そして, 折角Juliaに出会えたのだからこの際勉強しようと思い, IDE付きでインストールすることにした. 本記事では, インストール手順を後で振り返れるように, 全ての手順を残すことにする.

環境

Juliaのバージョン: 1.1.0

OS: Ubuntu16.04

Juliaのソースをビルド

まずはビルドに必要なパッケージをインストール

$ sudo apt install m4 m4-doc gfortran cmake

Juliaのソースをgitでダウンロード

$ git clone https://github.com/JuliaLang/julia.git

ダウンロードしたソースに入る

$ cd julia

CPUのコア数を確認後, makeでインストール(結構時間がかかる)

$ cat /proc/cpuinfo | grep cpu.cores 
cpu cores :4
$ make -j4

juliaをエイリアスに登録

$ echo "alias julia='/path/to/install/folder/bin/julia'" >> ~/.zshrc
$ source ~/.zshrc

コマンドラインでjuliaと打ち, 以下の画面がでればインストール成功

$ julia
               _
   _       _ _(_)_     |  Documentation: https://docs.julialang.org
  (_)     | (_) (_)    |
   _ _   _| |_  __ _   |  Type "?" for help, "]?" for Pkg help.
  | | | | | | |/ _` |  |
  | | |_| | | | (_| |  |  Version 1.1.0-DEV.681 (2018-11-19)
 _/ |\__'_|_|_|\__'_|  |  Commit 8a4f20b (0 days old master)
|__/                   |

julia> 

Atom editorのインストール

今回インストールするJunoというIDEは, Atom editorに依存している. なので, Junoのインストールの前にAtom editorをインストールする.

既にAtom editorがインストールされている人は, この手順を飛ばしてもOK. ただし, 公式の手順( https://docs.junolab.org/latest/man/installation.html)によると, Atom editorのバージョンが1.23以上ないとダメらしい.

GPGキーの取得からAtomインストールまでは3行なので, 簡単

$ sudo add-apt-repository ppa:webupd8team/atom
$ sudo apt update
$ sudo apt install atom

コマンドラインatomと打ち, editorがあらわれたらインストール完了

Juno(JuliaのIDE)をインストール

Atom editorのsettingのページからInstallを選択. すると, パッケージのインストール画面がでるので, uber-junoと検索. するとuber-junoのパッケージがでてくるので, Installボタンを押す.

下にuber-junoで検索をかけてインストールした時の画面を貼る. このような要領でインストールが簡単に済む.

f:id:Vastee:20181119150811p:plain

最後に, juliaのパスが通っているかを確認

f:id:Vastee:20181119153543p:plain

ここまででエラーが無ければ, Junoのインストールは完了

Atom editor上でNew Julia Fileというボタン(下の画像の赤枠で囲ったボタン)を押すと, Juliaのスクリプトが書ける.

下は,

Python使いをJuliaに引き込むサンプル集 | mwSoft

の記事を参考に, 100万~101万の間にある素数を標準出力するプログラムを動かしてみたときの画面である.

Julia言語自体はシンプルでわかりやすいが, IDEのJunoではBreak pointを打ってデバッグができないので少し不満がある. また, pythonIDE Spyderのように, 変数が別画面で表示されること(Variable explorer)が無いので, これも少々不便. 今後のアップデートに期待.

f:id:Vastee:20181119154002p:plain