4
5

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 3 years have passed since last update.

(自分用) jupyterlabで色々な言語とC#も実行できるようにする

Last updated at Posted at 2020-12-27

追記(2021/01/03)

.Net Interactiveが.Net Core3までしか対応していないと思い込んでいたのですが.Net5にも対応している事を教えていただきました。
試してみたところいけてそうです。

変更点(Dockerfile)

~略~

+++ # Install .NET5
+++ RUN wget -O dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/a0487784-534a-4912-a4dd-017382083865/be16057043a8f7b6f08c902dc48dd677/dotnet-sdk-5.0.101-linux-x64.tar.gz \
+++ && wget -O dotnet_runtime.tar.gz https://download.visualstudio.microsoft.com/download/pr/6bea1cea-89e8-4bf7-9fc1-f77380443db1/0fb741b7d587cce798ebee80732196ef/aspnetcore-runtime-5.0.1-linux-x64.tar.gz \
+++ && dotnet_sha512='398d88099d765b8f5b920a3a2607c2d2d8a946786c1a3e51e73af1e663f0ee770b2b624a630b1bec1ceed43628ea8bc97963ba6c870d42bec064bde1cd1c9edb' \
    && echo "$dotnet_sha512  dotnet.tar.gz" | sha512sum -c - \
+++ && dotnet_runtime_sha512='fec655aed2e73288e84d940fd356b596e266a3e74c37d9006674c4f923fb7cde5eafe30b7dcb43251528166c02724df5856e7174f1a46fc33036b0f8db92688a' \
    && echo "$dotnet_runtime_sha512  dotnet_runtime.tar.gz" | sha512sum -c - \
    && mkdir -p "/usr/share/dotnet" \
    && mkdir -p "/usr/bin/dotnet" \
    && mkdir -p "/root/.dotnet/tools" \
    && tar zxf dotnet.tar.gz -C "/usr/share/dotnet" \
    && rm dotnet.tar.gz \
    && tar zxf dotnet_runtime.tar.gz -C "/usr/share/dotnet" \
    && rm dotnet_runtime.tar.gz \
    && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
    && dotnet help


+++ RUN dotnet tool install -g --add-source "https://pkgs.dev.azure.com/dnceng/public/_packaging/dotnet-tools/nuget/v3/index.json" Microsoft.dotnet-interactive \
&&  dotnet interactive jupyter install

~略~

image.png
Record型が使えました。

知りませんでしたが#r "nuget:XXXXX"でnugetも使えるみたいです。
image.png
他にも色々できる見たいです。
詳しくはinteractiveのsamplesを参照下さい。

はじめに

ちょっと前からpythonを使うことが増えてきて、jupyterlabが使えないかなぁと思いちょくちょく調べるようになりました。
こちらの記事で他言語も動く事を知り、環境1つ用意しておけば様々な言語ををすぐに試せる事に感動して自PCに一つ作っておこうと思いました。

私はC#を使うことも多く、簡易コードを実行する度にConsoleApp1とか2...が増えていくのが嫌だったのでjupyterlabでC#が実行出来るようになると嬉しのでC#動かしたいなぁと。
ただ14言語の中にC#は入っていなかったので追加で入れてみました。

リポジトリのクローン

まずは@HeRoさんのgithubページからリポジトリをクローンします。

git clone https://github.com/HeRoMo/jupyter-langs.git

docker-composeの変更

docker imageはymlの中で呼ばずにDockerfileから呼ぶようにします。

version: "3"
services:
  jupyter:
---   image: ghcr.io/heromo/jupyter-langs:latest
+++   build:
+++     context: .
+++     dockerfile: Dockerfile
    volumes:
      - ./notebooks:/jupyter/notebooks
    ports:
      - 8050:8050 # for Dash
      - 8888:8888 # for Jupyterlab

Dockerfile

Dockerfileはcloneしたものを直接書き換えるか別名で下のようなものを用意します。
FROM ghcr.io/heromo/jupyter-langs:latestでimageを読み込み、C#部分を追加していきます。
(ついでにjupyterlabのextensionも追加してます)

# jupyter-langs:latest
FROM ghcr.io/heromo/jupyter-langs:latest

# add jupyter extension
RUN jupyter labextension install \
            @lckr/jupyterlab_variableinspector \
            @jupyterlab/toc \
            @jupyterlab/debugger

ENV DOTNET_ROOT=/usr/share/dotnet
ENV PATH=/usr/share/dotnet:/root/.dotnet/tools:$PATH

# Install .NET Core SDK
RUN wget -O dotnet.tar.gz https://download.visualstudio.microsoft.com/download/pr/ec187f12-929e-4aa7-8abc-2f52e147af1d/56b0dbb5da1c191bff2c271fcd6e6394/dotnet-sdk-3.1.404-linux-x64.tar.gz \
    && wget -O dotnet_runtime.tar.gz https://download.visualstudio.microsoft.com/download/pr/eca743d3-030f-4b1b-bd15-3573091f1c02/f3e464abc31deb7bc2747ed6cc1a8f5c/aspnetcore-runtime-3.1.10-linux-x64.tar.gz \
    && dotnet_sha512='94d8eca3b4e2e6c36135794330ab196c621aee8392c2545a19a991222e804027f300d8efd152e9e4893c4c610d6be8eef195e30e6f6675285755df1ea49d3605' \
    && echo "$dotnet_sha512  dotnet.tar.gz" | sha512sum -c - \
    && dotnet_runtime_sha512='884ec943eefc8397537a193d48d481eae8869eb82a8149f11b8a8bbca0cd75307e82e4db04a2329f03f8a50519afa27c0caa79193fb35a9c776efe1aff2d07a0' \
    && echo "$dotnet_runtime_sha512  dotnet_runtime.tar.gz" | sha512sum -c - \
    && mkdir -p "/usr/share/dotnet" \
    && mkdir -p "/usr/bin/dotnet" \
    && mkdir -p "/root/.dotnet/tools" \
    && tar zxf dotnet.tar.gz -C "/usr/share/dotnet" \
    && rm dotnet.tar.gz \
    && tar zxf dotnet_runtime.tar.gz -C "/usr/share/dotnet" \
    && rm dotnet_runtime.tar.gz \
    && ln -s /usr/share/dotnet/dotnet /usr/bin/dotnet \
    && dotnet help

RUN dotnet tool install -g Microsoft.dotnet-interactive \
&&  dotnet interactive jupyter install

CMD ["jupyter", "lab", "--no-browser", "--ip=0.0.0.0", "--allow-root", "--notebook-dir=/jupyter/notebooks", "--config=$JUPYTER_DIR/jupyter_notebook_config.py"]

起動

ビルドして起動します。

docker-compose up -d --build

確認

問題なく起動できていればhttp://XXX.XXX.XXX.XXX:8888/lab?にブラウザからアクセスするとjupyterlabのページが見えます。
.net(C#)等が増えていればOKです。

image.png

コードが実行できるかも試してみます。
image.png

やりました。問題なく実行できました!
※こっちのversionですと.Net Core3.1.10になりますのでご注意下さい。
.Net5を利用したい場合は追記を参照ください。

参考URL

https://qiita.com/HeRo/items/61e7f45a5dbb5fd0e4a7
https://github.com/HeRoMo/jupyter-langs
https://github.com/JDelemar/dockerfiles/tree/master/jupyterlab-dotnet
https://edi.wang/post/2019/9/29/setup-net-core-30-runtime-and-sdk-on-raspberry-pi-4
https://aquasoftware.net/blog/?p=1379

上記URLに感謝です。

4
5
2

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
4
5

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?