LoginSignup
32
35

More than 1 year has passed since last update.

jupyter labで最低限これだけは入れとけっていう拡張機能の紹介!

Last updated at Posted at 2022-06-05

jupyterをちょっとでも触ってると、ちょこちょこ不便だなぁと思うところが出てきます。(どんなツールでもそうですが…)

でもjupyterくらい有名なプロダクトだと世界中の方が本当にさまざまな拡張機能を作ってくれているので、有効活用させていただきましょう!

anacondaやjupyter labのインストールが終わっていない方はこちらから導入してみてください!

MacでGISデータ分析を始めるためにサクッとAnacondaとjupyter labをインストールしてみる

ひとまず仮想環境を作ってみる

仮想環境はプロジェクトごとに立ち上げるのが一般だと思いますが、jupyterのようなデータ分析基盤的なツールは1つだけ仮想環境を作って、すぐさま分析に入れるようになんでもかんでも突っ込んじゃうのが案外いいかもしれないと思っています。

なので、ホームディレクトリにでもjupyter_labのようなディレクトリを作って、そこに仮想環境を立ち上げていきましょう!

まずはディレクトリを作成します。

% pwd
~
% mkdir jupyter_lab
% cd jupyter_lab

仮想環境を作ります。

conda create -n jupyter_lab

その後、アクティベートします。

conda activate jupyter_lab

最後に、jupyter labをインストールします

conda install jupyterlab

これで準備完了!

jupyter labの拡張機能を色々インストール

この状態で一旦jupyter labを起動してみましょう

jupyter lab .

起動後に画面左のパズルみたいなマークをクリックすると、「installed」の箇所にはpygmentsしかインストールされていないことがわかります。

image.png

とりあえずごそっと拡張機能をインストールしましょう!

拡張機能はpipやcondaからインストールできるものや、jupyter labextensionでインストールできるものなど色々ありますが、大抵はnode.jsが必要になるので、まずこちらをインストールしましょう

conda install -c conda-forge nodejs

ちょっとマイナーなパッケージや拡張機能は公式のリポジトリだと存在しないこともあるので、コマンド中に-cオプション(channelの指定)をつけ、conda-forgeを指定してインストールしましょう!

conda install -c conda-forge jupyterlab-language-pack-ja-jp jupyterlab_code_formatter black isort ipywidgets jupyterlab-lsp 'python-lsp-server[all]'

ただし、conda-forgeに存在しないものもありますので、その時は普通に公式とか別のchannelからインストールしましょう…(大抵、公式のリポジトリやドキュメントに情報があります。)

後ほど紹介するjupyterlab_variableinspectorは普通にインストールすると存在しないバージョンがインストールされてしまうバグがあるっぽいので、バージョンを指定してインストールします。

参考: https://note.com/kksatotanaka/n/nf5f8af49426a

jupyter labextension install @lckr/jupyterlab_variableinspector@3.0.7

インストールが終了した後に、拡張機能を再読み込みすると増えていますね!

image.png

それではめんどくさいですが一個ずつ設定していきましょう!

jupyterlab-language-pack-ja-jp

まずは日本語化。

SettingsからLanguageの項目があるので、日本語に設定するだけで切り替わります!

変わらない場合は、ページの再読み込み、それでもダメならjupyter labの再起動で切り替わると思います。

image.png

ドキュメントの自動保存・ブラケットの自動閉じ

このまま、「ドキュメントの自動保存」・「Auto Close Brackets」にチェックをつけときましょう!

image.png

jupyterlab_code_formatter

次にフォーマッターの設定です。

フォーマッターは他のメンバーと共同で開発するわけではないので設定変更を行わなくてもいい感じにしてくれる「Black」を利用していきます!

Settingsから詳細設定エディタを開きましょう。

image.png

まずは画面右上のJSON Settings Editorをクリックしましょう。

image.png

するとこんな画面がでてきます。

image.png

検索窓からformatOnSaveと検索し、検索結果をクリックするとユーザー設定が出てきます。

image.png

画面右のユーザー設定を以下のようにして保存しましょう。

{
    "formatOnSave": true
}

image.png

今後、詳細設定を行うときはこのように行ってください。

ここまでの設定でファイル保存時に自動フォーマットされるようになりました。

image.png

↓保存

image.png

行番号の表示

拡張機能の設定ではありませんが、このまま詳細設定エディタから行番号表示の設定を行っていきましょう。

codeCellConfigを検索し、codeCellConfig内のlineNumbersをTrueに変更して保存しましょう。

image.png

こうすることでnotebookに行番号が表示されるようになります。

image.png

jupyterlab-lsp

こちらは、コードの参照先やDocstringに記載された引数や利用方法の説明を表示してくれるなどコードを書く上で便利な機能が揃っています!

あとコード補完なんかもしれくれます!

詳細設定エディタを開き、language_serversと検索しましょう。

その後、ユーザー設定の欄に以下のように書き込みます。

{
  "language_servers": {
    "python": {
      "version": 1,
      "argv": [
        "python",
        "-m",
        "pyls"
      ],
      "languages": [
        "python"
      ]
    }
  }
}

image.png

jupyterlab_variableinspector

導入すると変数の中身をリアルタイムに確認することができます!

簡単な変数を定義して、セルを実行したのちに右クリックメニューからOpen Variable Inspectorを選択してください。

image.png

するとこんな感じで変数の方やサイズ、値などが確認できます!

image.png

インストールした拡張機能を確認する

最後に、インストールした拡張機能の一覧をみてみましょう!

以下のコマンドで確認できます!

すべての拡張機能がenabled OKになってますね!

% jupyter labextension list
JupyterLab v3.4.2
~/opt/anaconda3/envs/jupyter_lab/share/jupyter/labextensions
        jupyterlab_pygments v0.2.2 enabled OK (python, jupyterlab_pygments)
        @krassowski/jupyterlab-lsp v3.10.1 enabled OK (python, jupyterlab-lsp)
        @ryantam626/jupyterlab_code_formatter v1.4.11 enabled OK (python, jupyterlab-code-formatter)
        @jupyter-widgets/jupyterlab-manager v3.1.0 enabled OK (python, jupyterlab_widgets)

Other labextensions (built into JupyterLab)
   app dir: ~/opt/anaconda3/envs/jupyter_lab/share/jupyter/lab
        @lckr/jupyterlab_variableinspector v3.0.7 enabled OK

お疲れ様でした!

拡張機能は他にもさまざまありますので、お好みのIDEに仕上げてみてください!

32
35
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
32
35