Ubuntu 20.04 でAzure ML (Python SDK)を使うと.NET Coreのエラーが出る場合の対処法


初めに

Ubuntu 20.04でAzure ML Python SDKの一部クラスを使う際に、.NET Coreが存在していないというようなエラーが発生します。
ドキュメントのコードを修正しながら実行する必要があったので備忘録としてメモします。

※ちなみに私が試行しているのは下記サンプルノートブックです。
Distributed PyTorch with DistributedDataParallel
PyTorchのDistributedDataParallelを使って画像データを対象に分散トレーニングを行うサンプルです。

問題

私の場合はWSL環境でDatasetクラスを使用した際に下記エラーが発生いたしました。

エラーメッセージ:

NotImplementedError: Linux distribution ubuntu 20.04 does not have automatic support.
.NET Core 2.1 can still be used via dotnetcore2 if the required dependencies are installed.
Visit https://aka.ms/dotnet-install-linux for Linux distro specific .NET Core install instructions.
Follow your distro specific instructions to install `dotnet-runtime-*` and replace `*` with `2.1`.

実行コードとエラーのイメージ:

対処法

エラーメッセージを参考に、.NET Core ランタイムのインストールを行います。
実行コマンドはこちらのドキュメントを参考に、エラーメッセージに合わせて修正して実行しました。

Microsoft package signing keyとパッケージリポジトリの追加を行います。

wget https://packages.microsoft.com/config/ubuntu/20.04/packages-microsoft-prod.deb -O packages-microsoft-prod.deb
sudo dpkg -i packages-microsoft-prod.deb

.NETランタイムをインストールします。ASP.NET Coreサポートは必要ないので、dotnet-runtime-2.1として実行します。

sudo apt-get update; \
  sudo apt-get install -y apt-transport-https && \
  sudo apt-get update && \
  sudo apt-get install -y dotnet-runtime-2.1

結果

先ほどはエラーが発生していたコードが無事に実行できるようになりました。

参考

Install the .NET SDK or the .NET Runtime on Ubuntu