lgo - Go の Jupyter Notebook 環境と REPL
最近、データサイエンスや機械学習などの分野で Python+Jupyter Notebook を使うことが多くなっていると思いますが、こういう分野でも Python の代わりに Go が使えたらなと思い趣味で Go の Jupyter Notebook 環境を作りました。
yunabe/lgo - Go REPL and Jupyter notebook kernel Edit (GitHub)
特徴
- Go を Python のようにインタラクティブに記述・実行できます。
- Juyputer Notebook からの利用
- Go の言語機能を全てサポート
- コード補完とドキュメントの表示
- Linux のみをサポート。Mac, Windows 上から使いたい場合は Docker を使って下さい。
Jupyter Notebook 上での動作はこのような感じになります
lgo を使った Jupyter Notebook の例
- この Notebook の例 (basics.ipynb)をみてもらえると何ができるか分かりやすいかと思います。 画像や HTML の出力も可能です。
- 他にも Notebook のサンプルがいくつかあります。
クイックスタート with Docker
- DockerとDocker Composeがインストールされていない場合、インストールして下さい。
- lgo のレポジトリに含まれる docker-compose.yml から、Docker コンテナを起動します。
> git clone https://github.com/yunabe/lgo.git
> cd lgo/docker/jupyter
> docker-compose up -d
- 上のコマンドで起動されたコンテナの名前をチェックして下さい。
jupyter_jupyter_1
などの名前がついているはずです。 - 以下のコマンドを実行して Jupyter Notebook にアクセスする URL を取得します。
> docker exec jupyter_jupyter_1 jupyter notebook list
Currently running servers:
http://0.0.0.0:8888/?token=50dfee7e328bf86e70c234a2f06021e1df63a19641c86676 :: /examples
docker exec
で表示されたアクセストークン付きの URL を使って Jupyter Noteboook を開きます。- Enjoy!
インストール
前提条件
- lgo は現在 Linux のみをサポートしています。Windows, Mac OS で使いたい場合は VM や Docker 上の Linux 環境を使って下さい。
- Go 1.8 または Go 1.9がインストールされている
- Jupyter Notebook がインストールされている
-
ZMQ がインストールされている。
- apt なら
sudo apt-get install libzmq3-dev
でインストールできます。
- apt なら
インストール
-
go get github.com/yunabe/lgo/cmd/lgo && go get -d github.com/yunabe/lgo/cmd/lgo-internal
- このコマンドで
lgo
コマンドが$GOPATH/bin
にインストールされます。$GOPATH/bin
に PATH が通っていない場合はPATH
を適切に設定して下さい。
- このコマンドで
LGOPATH
環境変数を設定してください。lgo
はLGOPATH
で設定されたディレクトリに実行ファイルやパッケージをインストールします。-
lgo install
を実行- このコマンドで
$GOPATH
にインストールされているパッケージがLGOPATH
にもインストールされlgo
から利用可能になります。 $GOPATH
に大量にパッケージがインストールされているとこの処理には多少時間がかかります。lgo install
が失敗した場合、$LGOPATH/install.log
にログが残るのでチェックして原因を特定して下さい。- もし特定のパッケージのインストールに失敗した場合、
-package_blacklist
フラグをlgo install
に渡して失敗したパッケージを除いてもう一度lgo install
を実行して下さい。
- このコマンドで
-
以下のコマンドを実行して、Juputer Notebook の設定をインストールします
$GOPATH/src/github.com/yunabe/lgo/bin/install_kernel
使い方 Jupyter Notebook
jupyter notebook
で通常通り Jupyter Notebook を起動。その後、"New Notebook"メニューで"Go (lgo)"を選んで下さい。- Notebook 上で変数やパッケージ名、関数などにカーソルを合わせて
Shift-Tab
を押すとドキュメントが表示されます。 Tab
でコードの補完(メソッドやフィールド名など)が行われます。
lgo run
で REPL が起動します。
$ lgo run
>>> a, b := 3, 4
>>> func sum(x, y int) int {
... return x + y
... }
>>> import "fmt"
>>> fmt.Sprintf("sum(%d, %d) = %d", a, b, sum(a, b))
sum(3, 4) = 7
最終更新: 2017/11/20