BEACHSIDE BLOG

Azure と GitHub と C# が好きなエンジニアの個人メモ ( ・ㅂ・)و ̑̑

Jupyter Notebook で C# や PowerShell を実行する

.NET Interactive で C# が Jupyter Notebook 上で動くのは結構前からありましたが、PowerShell も使えるようになったらしいので試してみました。

(ちなみに普段 PowerShell は滅多に使いまてん...)

今回はローカル環境で Jupyter Notebook で動かすのを試しますが、普段 Python の環境なんて使わないとローカルでこの環境を作るのはめんどいかもですね。そんな時は MyBinder とか使ってオンライン上で Jupyter Notebook で実行するのが良いかもしれませんね。

準備

conda update

ローカルで手軽に Jupyter を起動するのに Anaconda を入れてます。昔セットアップ方法を書いたなぁと思い出します。 私の場合既にインストール済みですが、最近 Anaconda さんを全く使ってないので、気分的な理由で Anaconda 本体のアップデートしておきます。

conda update -n base conda

f:id:beachside:20200218113354p:plain:w600

アップデート後は 4.8.2 になりました。

ついでに理由もなく全パッケージをアップデートしときました。

conda update all

.NET Core 3.1 SDK のインストール

.NET Core 3.1 の SDK が必要になります。とりあえずなんのバージョンが入ってるか確認しましょう。

dotnet --list-sdks

うむ、昔整理したけど...ごみのように古いバージョンが入ってますな...3.1 はもちろんはいってます。

f:id:beachside:20200218115652p:plain:w400

インストールしてない場合は、公式サイト などからインストールするしましょう。

dotnet-interactive のインストール

dotnet-interactive をインストールします。

dotnet tool install --global Microsoft.dotnet-interactive

f:id:beachside:20200218145407p:plain

次は、以下のコマンドでインストールするだけです。これで C# と PowerShell が使えるようになります(F# もか)

dotnet interactive jupyter install

インストール後、次のコマンドで C# と PowerShell の2つがインストールされていることを確認できます(あ、F#含めて3つ...)。

jupyter kernelspec list

f:id:beachside:20200218150553p:plain

Jupyter で C# / Power Shell を動かしてみる

適当なディレクトリに移動して jupyter notebook をコマンドで起動してみましょう。

jupyter notebook

ファイルを作るときに Python 3 のほかに、インストールした C# と PowerShell が選択できるようになっています(F# も(ry)

f:id:beachside:20200218150906p:plain

もちろん JupyterLab も同様です。

jupyter lab

f:id:beachside:20200218151414p:plain

カーネルで PowerShell を選択すれば PowerShell を動かせます。
C# を選択すれば C# が動くだけでなく magic command #!pwsh を使って PowerSehll を動かすこともできます。F(ry...

f:id:beachside:20200218153855g:plain

C# / PowerShell ともにプレビューで使えない機能もあるので、今度の動向に注目ですね。

GitHub - dotnet/interactive: .NET Interactive takes the power of .NET and embeds it into your interactive experiences. Share code, explore data, write, and learn across your apps in ways you couldn't before.

参考

.NET Interactive is here! | .NET Notebooks Preview 2 | .NET Blog

Public Preview of PowerShell Support in Jupyter Notebooks | PowerShell