2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 1 year has passed since last update.

Google Colaboratoryで.NET6.0を使う

Last updated at Posted at 2022-04-18

はじめに

Google Colaboratory はローカルインストールが不要で、無料ですぐに試せる Python の実行環境です。
.NET には .NET Interactive という VSCode 用の拡張機能があるのですが、今回はこの子を Google Colaboratory にインストールして .NET 6.0 を実行してみます。

ディストリビューションとインストール済みのカーネルの確認

2022/04/18現在ではUbuntu 18.04.5 LTSで実行されているようです。

! lsb_release -a
実行結果
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 18.04.5 LTS
Release:	18.04
Codename:	bionic

カーネルは irpython3の 2 つがインストールされていますね。

!jupyter-kernelspec list
実行結果
Available kernels:
  ir         /usr/local/share/jupyter/kernels/ir
  python3    /usr/local/share/jupyter/kernels/python3

.NET 6.0 と .NET Intaractive のインストール

Ubuntu に .NET SDK または .NET ランタイムをインストールする のUbuntu 18.04を確認しながら、.NET 6.0 をインストールします。

%%bash
wget https://packages.microsoft.com/config/ubuntu/18.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb
sudo apt-get update \
  && sudo apt-get install -y apt-transport-https \
  && sudo apt-get update \
  && sudo apt-get install -y dotnet-sdk-6.0

.NET Intaractiveの最新版をインストールし、設定ファイルを変更して標準のカーネルを C# に変更します。

%%bash

dotnet tool install -g --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" Microsoft.dotnet-interactive --version 1.0.317502 \
  && export PATH=$PATH:$HOME/.dotnet/tools \
  && dotnet interactive jupyter install
  
cat <<-EOF > /root/.local/share/jupyter/kernels/.net-csharp/kernel.json
{
	"argv": [
		"$HOME/.dotnet/tools/dotnet-interactive",
		"jupyter",
		"--default-kernel",
		"csharp",
		"--http-port-range",
		"1000-3000",
		"{connection_file}"
	],
	"display_name": ".NET",
	"language": "C#",
	"metadata": {
		"vscode": {
			"extension_id": "ms-dotnettools.dotnet-interactive-vscode",
			"kernel_id": "dotnet-interactive"
		}
	}
}
EOF

改めてカーネルの一覧を表示すると、C#やF#、Powershellの3つがインストールされたことが確認できます。

!jupyter-kernelspec list
実行結果
Available kernels:
  .net-csharp        /root/.local/share/jupyter/kernels/.net-csharp
  .net-fsharp        /root/.local/share/jupyter/kernels/.net-fsharp
  .net-powershell    /root/.local/share/jupyter/kernels/.net-powershell
  ir                 /usr/local/share/jupyter/kernels/ir
  python3            /usr/local/share/jupyter/kernels/python3

カーネルの適用

ノートブック上では新しいカーネルを認識させることができないので、一度 Google Drive などに ipynb ファイルを保存し、テキストエディターなどでじかに開き kernelspec を次のように変更します。

{
    "nbformat": 4,
    "nbformat_minor": 0,
    "metadata": {
        "colab": {
            "name": "Untitled4.ipynb",
            "provenance": [],
            "toc_visible": true,
            "authorship_tag": "ABX9TyOaLLjzVNL1u6jO8CZrRrZV"
        },
        "kernelspec": {
-            "name": "python3",
-            "display_name": "Python 3"
+            "name": ".net-csharp",
+            "display_name": "C#"
        },
        "language_info": {
            "name": "python"
        }
    },
    //  //

C# のコードを実行してみる

Colab を上記のファイルから開きなおすと、C# 10 のコードを Google Colab 上で実行できるようになります。

// C# 10(.NET6.0) から利用可能な Record 構造体
record struct Value(int X, int Y);
new Value(3, 4).Display();

System.Runtime.InteropServices.RuntimeInformation.FrameworkDescription.Display();
実行結果
X	Y
3
4
.NET 6.0.4

おわりに

新しいインスタンスを立ち上げるたびに毎回セットアップからやるのはめんどくさいですが、.NET をインストールすることなくお手軽(?)に試せるのは良いかもしれません。

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?