gophernotesを使ってみる

こんにちは。技術研究所の910です。

私は主にPythonでコードを書くことが多いのですが、その際には一度Jupyter Notebookで短いコードを書いて動かしてみてからモジュールに実装する、というやり方を取っています。
コードを共有するのも楽ですし、Markdownで書いたメモも一緒に共有できるので、好んで使っています。

最近ふつふつと新たな開発言語を学びたい欲が湧いてきたので、Golangを学ぶことにしました。
そこでNotebook用のGoカーネルを探してみたところ幾つか見つかりましたので、試してみました。

本記事はかなり短い記事となっていますので、かるーく読んでいただければ幸いです。

環境

Jupyter Notebook用Golangカーネル

まずこの要件を満たせるカーネルを探すべく、まずは golang notebook でググってみました。
上位に出てきたのは以下の2つで、どちらも同じ程度のStarが付けられていました。

先述した通り、私はNotebookで短いコードを書いて動かしてみてからモジュールの実装に掛かるというやり方をしているので、パッケージを一箇所でまとめて管理するようになっている方が楽です。
その為、 gophernotes を選びました。

gophernotesの導入と動作確認

こちらに従い、導入を行いました。

1. 依存関係

gophernotesの導入前に、予め以下を導入しておく必要があります。

  • Go 1.9+
    導入済みなので、バージョンのチェックをしました。

  • Jupyter Notebook or nteract
    今回はJupyterを使用しますので、 pip3 で導入しました。

  • ZeroMQ 4.X.X

  • pkg-config

これで依存関係の導入は完了です。

2. NotebookへのGoカーネルの追加

動作確認

Jupyter Notebookを起動し直すと、NewボタンからGolangのNotebookを作成できるようになっています。

試しに画像を読み込んで表示してみたところ、問題なく動いているようです。

所感

非常に簡単に、Notebook上でGoが書ける環境を整えることができました。
しかし少し使ってみた結果、ちょっとだけ残念な点も見られました。

  • 関数定義の参照ができない
    Pythonカーネルでは関数名末尾に”?”を付けて実行すると関数定義を参照することができましたが、gophernotesはこれには対応していないようです。
  • Pythonに依存する
    JupyterがPythonを使っている都合上止むを得ないところですが、私はPythonの仮想環境を逐次切り替えて作業していたりするので、環境を切り替え忘れたりしてちょっと混乱しそうな気がします。

上記のように瑣末な不満はありますが、Notebookで実装できるのは物凄く楽だなー。と改めて感じました。

  • このエントリーをはてなブックマークに追加