若葉の技術メモ

コンピュータやプログラミングに関して調べたり、取り組んだりしたことをまとめる若葉のノート📓。コンピュータ・プログラミング初めてって方も一緒に勉強していきましょう!初心は大事!いつでも若葉☘のような意気込みで!

  • No.   

若葉の技術メモ

コンピュータやプログラミング・数理に関して調べたり、取り組んだりしたことをまとめる若葉のノート。

コンピュータ・プログラミング・数理が初めてって方も一緒に勉強していきましょう!

初心は大事!いつでも若葉☘のような意気込みで!

【Jupyterを使っているChromebookユーザ必見!】Jupyter Labをシェルフに追加する方法!

Jupyter Lab。

Pythonをベースとした統合開発環境で、ファイル管理やコーディング、対話的なデータ解析に、シェルの管理などもできてしまう、一度触ったら手放せないツールです。

しかし、このJupyter Lab、デフォルトの設定のまま、Chromebook上で起動しようとすると、わざわざターミナルを立ち上げないと起動することができません...

ということで、今回の記事ではこの問題を解決するために、ChromebookのシェルフにJupyter Labを追加する方法をご紹介します!

※この記事の内容をご自身のPCで試す場合は自己責任でお願いします


はじめに

以前の記事でChromebookにJupyter Labを追加する方法をご紹介しました。

そして、この方法でJupyterを使い続けていたのですが...ふと、「Jupyter Labを起動するアイコンがあったらなぁ」って思ってしまいました。

というのも、デフォルトの設定では

  1. Crostini Terminalを立ち上げる

  2. Jupyter Labとタイプする

  3. Jupyetr Labが起動する

という手順で、1と2の手順が面倒に感じるからです。

もし、いきなり3からできて、それだけでJupyterが起動すれば楽じゃないですか?

Ubuntuだったら、こんな感じですね。

inabower.hateblo.jp

そこで、この記事ではJupyter Labをシェルフに追加する方法をご紹介します。

環境

LauncherにCrositiniスクリプトの起動アイコンを設置する方法

早速、方法をご紹介しましょう!

Crostiniでシェルスクリプトをシェルフに追加する方法がありましたので、そちらを参考にさせていただきます。

www.reddit.com

大まかに手順をまとめるのであれば、

  1. 作業用ディレクトリの作成

  2. アイコンの準備

  3. デスクトップファイルの作成

  4. パーミッションの変更

  5. シンボリックリンクを張る

の5つのステップです。 順に追っていきましょう!

STEP1:ディレクトリの作成

まずは作業用ディレクトリの作成です。 ターミナルを開きましょう。

f:id:wakaba-mafin:20181208114026p:plain

そして、ディレクトリを作ります。

$ mkdir jupyter_launcher  # ディレクトリ名はお好みで
$ cd jupyter_launcher     # ディレクトリの移動

もし、ここで隠しディレクトリにしたい(lsやChromeOS側のファイルエクスプローラに表示させたくない)場合はmkdir .jupyter_launcherのようにディレクトリ名の前にドットを付ければOKです。ただ、名前の衝突にはお気をつけください)

これで1つ目のSTEPはOK。

STEP2:アイコンの準備

続いて2つ目のSTEP、アイコンの準備です(デフォルトのCrostiniのアイコンでよければここは飛ばしてもOK)。ここはお好みの画像を準備するだけ。例えば、公式のページ

jupyter.org

からアイコンを拝借するなり、自分で好きな画像を用意するなりすればOKです。ここでは仮に用意した画像の名前をchromebook-jupyter-icon.pngのようにしておきましょう!そして、その画像を上で作成したディレクトjupyter_launcherに入れておきます。

STEP3:desktopファイルの作成

さて、次に3つ目のSTEPに移りましょう!ここからは少し本格的になってきます。

$ vim jupyterlab.desktop

として、.desktopファイルを作成します。エディタは別にvimではなくても大丈夫ですが、Crostiniのデフォルトではvimが一番いいのかな?個人的にはemacsが好きですが...笑

$ emacs jupyterlab.desktop

ただ、Emacsはご自身でご用意くださいませ。参考(1つ目は最新ですが少し手順多い。2つ目は古いですが手順が簡単)↓

そして、エディタを使ってjupyterlab.desktopに必要事項を書き込みます。

[Desktop Entry]
Name=JupyterLab
Exec=sh -c "/hoge/hogehoge/jupyter lab --ip ${ご自身のホストのIP}"
Type=Application
Categories=Application
Icon=/home/${ご自身のユーザ名}/jupyter_launcher/chromebook-jupyter-icon.png
Terminal=true;

ここで注意事項が3つあります。

  • 注1:/hoge/hogehoge/jupyterの部分は絶対パスを入れる必要があります。ターミナル上でwhich jupyterを使って確認してください

  • 注2:${ご自身のホストのIP}はhostname -Iを使って確認します。

  • 注3:ユーザ名はecho ${USER}などで確認できますが、ご自身のユーザ名をご記入ください

というわけで、以上で3つ目のSTEPが終了です!

STEP4:パーミッションの変更

続いて4つ目、パーミッションの変更ですね! それは適当に

$ sudo chmod 644 jupyterlab.desktop
$ sudo chown root:root jupyterlab.desktop

でOKです。chmodchownの詳細については

eng-entrance.com

eng-entrance.com

で勉強させていただきました。さて、これで4つ目のSTEPが完了です。

STEP5:シンボリックリンク

では最後のSTEP、シンボリックリンクを張ることにしましょう。これはまさにシェルフにJupyter Labを追加する作業になります。

Chromebookのシェルフに自作のスクリプトなどを置く際には、それに該当する.desktopファイルを/usr/share/applications/に置く必要があります。もちろん、ファイル自体をここに入れてもいいのですが、後々のメンテナンスのことを考えると、1つ目のSTEPで作成したディレクトリでメンテナンスもできた方がいいです。ということで、/usr/share/applications/にリンクを張ることにします。

sudo ln -s /home/${ご自身のユーザ名}/jupyter_launcher/jupyterlab.desktop /usr/share/applications/

でOK。これで/usr/share/applications/jupyterlab.desktopが追加されたはずです。(ls /usr/share/applications/で確認できます)

さて、お疲れ様でした!以上で作業が完了です。

これでランチャにJupyter Labが追加されたはずです!

f:id:wakaba-mafin:20181208114128p:plain

ここまで来てしまえばシェルフに追加するのは容易です。ランチャのJupyter Labを2本指クリックして、シェルフに固定するだけ。

f:id:wakaba-mafin:20181208114148p:plain

これでJupyter Labの起動が楽になりますね!

シェルフから起動したJupyter Labを閉じる際の注意事項

さて、ここで大きな注意点を書いておきます。 Jupyter Labをシェルフから起動できるようになったのはいいのですが、終了する際には1つ注意点があります。

上の方法でシェルフにJupyter Labのアイコンを追加した場合、ターミナルは起動せずにJupyter Serverのみが内部で動いてJupyter LabのChrome Tabが開きます。 すなわち、Jupyter Labを終了する際にタブのみを閉じてしまうとJupyter Serverを終了することができません (タブを閉じた後に、URL欄にJupyter LabのURLを入れると再び開くことができる)

ということで、Jupyter Serverも含めてJupyter Labを終了する際にはちゃんとquitから終了しましょう!

f:id:wakaba-mafin:20181208114226p:plain

これでJupyter Serverも含めて終了できます。心配な方はJupyter Labを起動した際のポート番号がデフォルトの8888から変わってしまっていないかの確認やターミナル(Jupyter Labのshell)で

$ jupyter notebook list

と叩けば起動しているJupyter Serverを確認することができます。もし、終了できていないサーバが見つかった場合は

$ jupyter notebook stop ${ポート番号}

で停止することもできるので、定期的に確認はしておきましょう。

というわけで、シェルフから起動したJupyter Labを終了する際にはご注意を

まとめ

今回の記事ではJupyterをたくさん使いたいというChromebookユーザの方に向けて、Jupyter LabをChromebookのシェルフに追加する方法をご紹介しました。

その方法は次のコマンドをCrostini Terminalで順に実行するだけ

$ mkdir jupyter_launcher     # ディレクトリの作成
$ cd jupyter_launcher        # 移動
$ # 画像chromebook-jupyter-icon.pngの準備
$ vim jupyterlab.desktop     # emacs jupyterlab.desktopでも、ChromeOS側からの編集でもOK

######## 以下の内容を記述 ########
# [Desktop Entry]
# Name=JupyterLab
# Exec=sh -c "${which jupyterで確認した場所}/jupyter lab --ip ${ご自身のホストのIP}"
# Type=Application
# Categories=Application
# Icon=/home/${ご自身のユーザ名}/jupyter_launcher/chromebook-jupyter-icon.png
# Terminal=true;
########   ここまで   ########

$ sudo chmod 644 jupyterlab.desktop           # パーミッションの変更
$ sudo chown root:root jupyterlab.desktop     # 所有者の変更
$ sudo ln -s /home/${ご自身のユーザ名}/jupyter_launcher/jupyterlab.desktop /usr/share/applications/     # シンボリックリンク

以上でJupyter Labがランチャに登録されます。 今回の記事でChromebookユーザの方のJupyterライフが捗れば嬉しいです!

なお、私はJupyterを使ってはてなブログを書いてますので非常に捗っています!

ということで、今回はここまで!

間違いのご指摘やご意見・ご質問などございましたら、どんな些細なことでも結構ですので、ぜひコメントのほどお願いします!お待ちしております。