いものやま。

雑多な知識の寄せ集め

もうPythonで迷わないために。(その3)

前回はPythonの仮想環境について書いた。

今回は開発環境について。

JupyterLab

実際のところ、開発環境は好みもあるので、「絶対にこれを使うべきだ」というのはない。 vimなどのエディタがあれば十分という人もいるだろうし、一般的に人気のあるVSCodeや、Python開発に特化したPyCharmなどもある。

ただ、データ分析をするのであれば、やはりJupyterを使うのがオススメ。 とくに、Jupyter Notebookの後継であるJupyterLabを使うといい。

Jupyter Notebookのいいところといえば、実行した結果がすぐに見れるので、探索的にコードが書いていけるところ。 これがデータ分析にすごくあってる。 また、データ分析でなくても、ノートブックでコードをいろいろ試し、ちゃんと動作することを確認できてからその結果をもとにスクリプトを書くといった使い方もできる。

JupyterLabではこれに加え、さらに以下のようなメリットがある:

  • 複数のノートブックをタブで開け、レイアウトも自由に変えられる
  • ターミナルが使える
  • Markdownを書いてプレビューを見れる
  • ファイルブラウザが使える
  • 拡張機能が使える
  • テーマを入れて切り替えることで外観を変えられる
  • ノートブックやスクリプトデバッグできる(ver3以降)

このおかげでほとんどの作業はJupyterLabの中でできてしまう。 強い。

JupyterLabのインストールと起動

さて、そんなJupyterLab、インストールも簡単。

まず、拡張機能を使えるようにするためにNode.jsをインストールしておく。

あとはpipを使ってインストールするだけ:

$ pip install jupyterlab

ちなみに、もうPythonで迷わないために。(その2) - いものやま。のように仮想環境を使っているなら、汎用的な仮想環境でインストールするといい。

そして起動は以下のとおり:

$ jupyter lab

なお、デバッグ機能を使いたい場合、JupyterLabは3.1以上、依存関係で一緒に入るipykernelは6.2以上になっている必要がある。 もしそうなっていない場合、以下のようにアップグレードしておくといい:

$ pip install --upgrade jupyterlab ipykernel

カーネルの追加

ノートブックから使われるインタプリタカーネルと呼ぶけど、これは普通、JupyterLabを動かしているインタプリタと同じものが使われる。 ただ、プロジェクトによっては仮想環境にある別のインタプリタを使いたいことも。 そういった場合、JupyterLabにカーネルを追加するといい。

カーネルを追加するには、まずカーネルとして追加したいPythonの仮想環境を有効にする。

そして、以下のコマンドでipykernelをインストール:

$ pip install ipykernel

そのあと、ipykernelを呼び出してそのPythonの仮想環境をカーネルとして追加する:

$ python -m ipykernel install --user --name <カーネル名>

これでカーネルが追加されるので、ノートブックで使用したいカーネルを選べばいい。 (JupyterLabの再起動が必要かも)

ターミナルの設定

あとは細かいTipsをいくつか紹介。

ターミナルが使えるのは便利なんだけど、何もしないとフォントがすごく見づらい可能性がある。 その場合、メニューの「Settings」-「Advanced Settings Editor」を選んで設定を開き、「Terminal」の項目で設定を修正しておくといい。

たとえば、フォントとして等幅フォントのMonacoを使い、サイズを16ptにしたいなら、以下のような感じ:

{
    "fontFamily": "Monaco",
    "fontSize": 16
}

テーマの追加、指定

拡張機能を使ってテーマを追加すると見た目を変えられる。

メニューの「Settings」-「Enable Extension Manager」にチェックを入れると拡張機能をUIからインストールできるようになる。 そして、テーマを検索して「Install」ボタンを押せばテーマは追加され、あとは「Settings」-「JupyterLab Theme」から使いたいテーマを選べばいい。

テーマはいろいろあるので探してほしいけど、自分が最近使ってるのは「One Dark Pro for JupyterLab」というもの。

ダークテーマで、デバッガやターミナルでも色使いがいい感じだったので気に入っている。

UIの日本語化

それほど必要性は感じないけど、一応UIを日本語化もできる。

やり方は簡単で、pipでインストールするだけ:

$ pip install jupyterlab-language-pack-ja-JP

これでメニューの「Settings」-「Language」から「Japanese」を選べばいい。 (JupyterLabの再起動が必要かも)

単独ウィンドウとして実行

JupyterLabを普通に使うのだと、Webブラウザの1つのタブの中で実行される。

ただ、これだと1つの独立したアプリっぽくなくて、また、WebブラウザのUIに画面のスペースを少し取られてしまうのが不満。

そんな場合、使っているブラウザがChromeなら以下のChrome拡張が使える:

Open-as-Popup - ht0.de

このChrome拡張を入れると、タブをポップアップウィンドウで表示できるようになる。 そこで、JupyterLabのタブをポップアップウィンドウにして全画面表示にすると、普通のデスクトップアプリのように使えてとてもいい。

なお、調べたらつい最近JupyterLab AppというElectronベースのデスクトップアプリがリリースされてた:

これを使うのもありかもしれない。


今日の内容をまとめると、以下:

  • データ分析をするならJupyterLabがオススメ
  • インストール方法は以下:
    1. Node.jsをインストールしておく
    2. 汎用的なPython仮想環境を有効化
    3. $ pip install jupyterlabでインストール
  • 起動は$ jupyter lab
  • 他のPython仮想環境を使いたい場合、カーネルを追加する:
    1. 追加したいPython仮想環境を有効化
    2. $ pip install ipykernelでipykernelをインストール
    3. $ python -m ipykernel install --user --name <カーネル名>カーネルを追加
  • その他Tips:
    • ターミナルのフォント設定を変えられる
    • テーマを追加して見た目を変更できる
    • UIを日本語化できる
    • 単独ウィンドウとして実行できる

今日はここまで!