.NET Jupyter Notebook の実行環境を WinPython 上に構築する
はじめに
この記事では
- .NET interactive を使用可能な Jupyter Notebook 環境を
- Windows で
- WinPython を使用して構築する
手順をご紹介いたします。
docker使う場合は公式にガイドがあるのでそちらを
→ https://github.com/dotnet/interactive/tree/master/samples/docker-image
.NET interactive とは?
Jupyter Notebook上で、.NET Coreを使用できる機能です。
これを導入することで、Jupyter Notebook上でPythonを使うように、
C#やF#、PowerShellを使用することが可能になります。
WinPython ?
WinPythonってあまり馴染みの無い単語かもしれませんが、
私が好きなWindows用のPythonディストリビューションです。
The easiest way to run Python, Spyder with SciPy and friends out of the box
on any Windows PC, without installing anything!
とあるように、展開するだけでPython環境が使えるようになる素敵なディストリビューションです。
なお、以前までは展開にあたり謎のシステム管理者権限を要求されていたんですが、
7zipの自己解凍形式に変更になり、そこらへんも要求されない、よりクリアな形態になりました。
最近では ワンクリックで Jupyter Notebook のサーバーが立ち上がったり、
WinPython にPATHが通った状態で vscode を立ち上げられたりかなり使いやすいです。
消したくなったらフォルダごと削除すればいいだけなので、試行錯誤にはもってこいです。
(コンテナを使え、と思わないこともない)
導入手順
ではやっていきます。
実施環境: Windows 10 64bit, WinPython 3.8.1.0
dotnet SDK の導入
Microsoftから .NET SDK 3.1 をインストールします。
インストールすることで、dotnet
コマンドが使用可能になります。
dotnet interactive の導入
.NET SDKの導入が終わったら、コマンドプロンプトから下記コマンドを実行します。
dotnet tool install -g --add-source "https://dotnet.myget.org/F/dotnet-try/api/v3/index.json" Microsoft.dotnet-interactive
実行することで、dotnet interactive
サブコマンドが使用できるようになります。
(C:\Users\<user_name>\.dotnet\tools
にPATHを通す必要があるかもしれません)
下記のような出力がなされます
次のコマンドを使用してツールを呼び出せます。dotnet-interactive
ツール 'microsoft.dotnet-interactive' (バージョン '1.0.126201') が正常にインストールされました。
kernels の導入
WinPython Command Promptを実行し、
(WinPython Command Prompt とは、WinPythonのPATHが通った状態のコマンドプロンプトです)
下記コマンドを実行します。
dotnet interactive jupyter install
スクリーンショットからもわかるように、jupyter kernelspec list
や エクスプローラからもカーネルの設定ファイルがあることがわかると思います。
- .net-scharp
- .net-fsharp
- .net-powershell
(私はWinPython環境にJuliaも入れてるので余計なカーネルがあります)
試してみる
カーネルが追加されたことが確認できたら、
Jupyter Notebook(Jupyter Lab)を起動して試してみます。
jupyter lab の起動
「.exe」をクリックするだけです。簡単ですね。
起動すると、Launcherに Pythonや Octave以外の Notebook作成メニューが表示されていると思います。
.NET(C#) をオタメシ
サンプルなどは公式のリポジトリにあるので、最初はこちらを試すのがいいです。
Displayあれこれ
Notebookの威力を知るには「Displaying output.ipynb」を試すのが簡単です。
display
いいぞ。ちなみにPythonで書くとこんな感じでしょうか。
Console.Write
Console.WriteLineとかを使うとPythonの print
みたいなのができますね。
display.Update
displayで表示した内容は Update
で更新かけることができます。
↓ 一秒後
これは Microsoft.DotNet.Interactive.Events.DisplayedValue
型が返るからみたいですね。
ちなみにPythonで書くとこんな感じ?
NuGet パッケージ
外部パッケージはnugetからダウンロード・インポートできます。
#r "nuget:MongoDB.Driver,2.10.4"
のように、#r "nuget:<パッケージ名>,<バージョン>"
で指定します。
使うときは普通に using
で。
おわりに
以上、Jupyter Notebookで .NET が使用できる「.NET interactive」という、
変わったOSSのご紹介でした。
.NET Interactive is here! | .NET Notebooks Preview 2
Microsoftのブログにあるように、
クラウド管理の手順書を .ipynb でまとめて配布するなど様々な応用が考えられそうですね。
特に、PowerShellが使えるのが強そうです。
参考文献
Author And Source
この問題について(.NET Jupyter Notebook の実行環境を WinPython 上に構築する), 我々は、より多くの情報をここで見つけました https://qiita.com/yoh1496/items/544f025b599c08159033著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .