今回は、 .NET Interactive を利用し、ローカルマシンで C# や PowerShell Core の REPL を利用するまでをまとめる。
なお、 とりあえず動かしてみたいだけであれば、 バッジのリンクをクリックして、 オンライン上の Binder にブラウザにアクセスするだけで、利用することができる。
→ Use Jupyter with .NET Interactive on Binder
.NET Interactive とは
.NET Interactive は、 以前 Try.NET と言う名前で提供されていた、 .NET のインタラクティブな機能を提供する API スイートだ。
JupyterLab に .NET カーネルを追加する形で、 REPL の実行やノートブックの作成する仕組みを提供することが、 主なユースケースとなっている。
REPL ではコード補完も効くので、非常に便利なものになっている。
Jupyter について
まず、 Jupyter についても軽く説明しておく。
既にご存じなら読み飛ばして欲しい。
JupyterLab とは?
JupyterLab を説明する前に、 その前身となる Jupyter Notebook や IPython Notebook を説明しておこう。
Jupyter Notebook とは、 REPL 的に実行できるコード片やその実行結果などを「ノートブック」と呼ばれる形式で記録しながら、データの分析や可視化を行うためのツールだ。
この「ノートブック」には、上述のコード片や実行結果の他にも、その実行結果を図や表にビジュアライズしたものや、メモやドキュメントなどの情報も、まとめることができる。
もともと、 Python 向けに IPython Notebook という名前で開発されていたものが、 Python 以外の言語にも対応する機能 (カーネル) を追加するにあたって、 Jupyter Notebook と改名された。
そんな Jupyter Notebook の後継が JupyterLab である。
JupyterLab は、 Jupyter Notebook の機能に加え、 REPL が実行できるターミナル画面、テキストエディタなどが加えられた、統合開発環境となっている。
そんな JupyterLab に C# などの .NET の機能を追加してしまうのが、今回の .NET Interactive だ。
Binder (mybinder.org)
Jupyter を語る上で外せないのが、 Binder (mybinder.org) だ。
これは、 GitHub 上にある Jupyter のリポジトリの情報をつかって、 自分専用の一時的な Jupyter サーバーを、無料でホストしてくれるサービスである。
つまり、 ほとんどの Jupyter の環境を、ブラウザを用意するだけで実行できる。
但し、しばらく非アクティブにしていると、セッションが切断されてしまうので、普段使いにはちょっと難がある。
そこで、ローカルマシンに JupyterLab を構築するモチベーションが出てくるわけだ。
JupyterLab と .NET Interactive をインストールする
ということでようやく、 本題の .NET Interactive のインストールの方法について。
基本的には、 Create .NET Jupyter Notebooks on your machine の手順に則って説明する。
しかし、Jupyter をインストールするためだけに Anaconda を入れるのは、少々大げさな気がするので、 Python の仮想環境に直接 JupyterLab をインストールするように、以下の手順とすると良いだろう。
- .NET Core SDK 3.1 LTS をインストール
- Python 3.x をインストール
- とりあえず、 Python 3.6 ~ 3.8 で動くことは確認した。
dotnet tool install -g Microsoft.dotnet-interactive
で dotnet-interactive グローバルツールをインストール- venv 環境を作成
- pip で jupyterlab をいれる
- .net jupyter カーネルを入れる
- JupyterLab を起動
Step 3 以降は、 Windows なら以下のような感じ。
dotnet tool install -g Microsoft.dotnet-interactive
py -3 -m venv .\venv_jupyter
cd .\venv_jupyter
.\Scripts\activate
pip install jupyterlab
dotnet interactive jupyter install
jupyter lab
Linux なら以下のような感じ。
dotnet tool install -g Microsoft.dotnet-interactive
python3 -m venv ./venv_jupyter
cd ./venv_jupyter
. ./bin/activate
pip install jupyterlab
dotnet interactive jupyter install
jupyter lab
以降、 jupyter を起動するためには、 一旦 python の仮想環境の activate
を実行してから jupyter lab
コマンドを呼び出す必要がある。
例えば Windows なら、 以下のようなショートカットを作成しておくと、ワンクリックで JupyterLab を立ち上げられて便利である。
- リンク先:
%COMSPEC% /V:ON /S /C ".\Scripts\activate&jupyter lab"
- 作業フォルダー: 前述の
venv_jupyter
のフルパス
待っていればそのうち Visual Studio Code が対応する
とはいえ、 Python をインストールして環境整えて、使う度に JupyterLab のプロセスを起動させるのはそこそこめんどくさい。
現在、 Visual Studio Code (vscode) に .NET Interactive をネイティブ対応させる拡張機能が 開発中 だ。
2020年6月時点では、 Visual Studio Code Insider が必要となっている が、そう遠くない将来に安定版の vscode にも対応するだろう。
そうすれば、 上記のようにわざわざ JupyterLab や .NET Interactive のセットアップを行わなくても、 vscode に拡張機能を入れるだけで簡単に JupyterLab の機能がつかるようになるはずだ。
このため、 vscode の対応を待つというのも手である。
ピンバック: .NET Interactive で C# と PowerShell を股に掛ける | Aqua Ware つぶやきブログ