時代はJupyter notebookよりJupyterLabらしい
この記事の続きです。
以前,Pythonをかじった時にはJupyter Notebookを使いました。
Jupyter Notebookはひとつのドキュメントの中に、文章、Pythonコード、実行結果をどんどん繋げて書いていけるアプリケーションです。見出し、説明、コード、実行結果、それに対する解説など、普通なら複数ファイルに分かれてしまうものを1つのドキュメント内で編集・閲覧できます。
勉強にたいへん便利だったので今回も使いたいと思いました。
Anaconda NavigatorのHomeでアプリケーションを見てみると、Jupyter Notebookと並んでJupyterLabというのがありました。
違いを調べてみると、Jupyter Notebookの上位互換の後継アプリがJupyter Labだというので、JupyterLabを入れることにしました。
Jupyter Labのインストールと起動
インストールはターミナルで行いました。以下のコマンドで入りました。
conda install jupyterlab
pipの場合はpip install jupyterlab
でいいみたいです。
起動はJupyterlab
だとエラーになります。
Jupyter lab
という風にlabの前を半角空けます。jupyterというコマンドのサブコマンドがLabみたいです。
jupyter -h
でヘルプが見られます。
起動する前に作業するディレクトリに移っておく必要があります。
また、必要に応じてcondaの環境切り替えもしておきます。
## 環境一覧
conda info -e
## 環境の切り替え
conda activate ${env}
## 環境から抜ける
conda deactivate
起動時のディレクトリがJupyterLab上のルートディレクトリになります。アプリ上ではそこから上のディレクトリへは行けませんでした。
Jupyter lab
JupyterLabの基本操作
JupyterLabが起動すると自動的にブラウザで操作画面が開きます。
URLは http://localhost:8888/lab
でした。ただ、アクセスにはトークンが必要なので他のブラウザからいきなりこのURLを打っても使えません。自動で開いたブラウザでは、いったんウインドウを閉じても再度このURLでアクセスできます。
Mac側のターミナルではJupyterサーバーのログを表示しています。
JupyterLabはブラウザで動くIDEという感じです。ファイルブラウザ、エディタ、コンソール、ターミナルが祖成っていて、ここの中だけでPythonコードを書いてできます。
Jupyter NotebookはこのIDE内で使えるドキュメント形式のひとつという扱いになっています。
ローンチャーの使い方
最初に起動したときには、図のように左にファイルブラウザ、右にローンチャーが表示されています。
ローンチャーの機能は以下の通りです。
Notebook:Jupyter Notebookを新規作成
Console:Pythonの対話型実行環境を開く
Terminal:ブラウザ上でターミナルが使えます。echo $SHELLで確認したらzshと出ましたのでMacのターミナルをリモート?で使っているのではないかと思います。
Anaconda環境では(base)環境でターミナルが開きます。複数の実行環境を作っている場合には適宜、conda activate [環境名]で切り替える必要があります。
Text File、Markdown File、Python File:それぞれのフォーマットの新規ファイルを作成します。ファイルブラウザが開いているパスに保存されます。
Show Contextual Help:ヘルプを表示してくれるみたいです。
何かを起動するとローンチャーは閉じます。ファイルブラウザ上部の「+」ボタンで新しいローンチャーを表示できます。
タブを移動する
開いているタブは自由にドラッグして移動できます。
ウインドウの縦分割、横分割のできます。ブラウザ上でこんなに自由にレイアウトできるなんてすごいですね。
テーマを変更する
SettingメニューのThemeで画面のテーマを変更できます。Darkモードにすると良い感じです。
また、エディターやコンソール、ターミナル、ノートブックのフォントサイズを変更できるのはとてもありがたいです。
Jupyter Notebookを作成する
Jupyter NotebookはローンチャーからNotebookを選んで作成します。
ノートは自動的に現在のパスに保存されます。名前はファイルブラウザ上で右クリック:Rename で変更できます。
Notebookを複数作って同時に開くこともできます。
Jupyter NotebookのセルにPythonコードを書いて実行する
Jupyter Notebookは、チャットの投稿画面のような枠(セル)にコードや文章を入力していきます。
デフォルトはコードセルです。Pythonコードを入力してshift + Enter (return)を押すと実行結果が下に表示されます。
コードを編集して再びshift+Enterを押せば実行結果も更新されます。
Anacondaの実行環境はJupyter Labを起動したターミナルと同じ環境になっているようです。
Pygameのようにブラウザ外でウインドウを開くライブラリも動きました。
ターミナルコマンドを実行する
!(エクスクラメーション)を先頭に付けるとターミナルコマンドを実行できます。
Markdownやテキストを書く
セルの種類はコード以外にMarkdownとRawがあります。
セルを選択してNotebookエディタ上部のポップアップメニューで種類を変更できます。
Jupyter NotebookのMarkdown記法は以下の通りです。HelpメニューのMarkdown Referenceでも見られます。
Markdown Referenceには"10分でできるチュートリアル" もあります。10分では終わりませんでしたがMarkdownに不慣れな人間には結構いい練習になりました。
マークの後ろには必ず半角スペースを空けます。
入力後にShift+Enterでマークダウンの解釈とレイアウトが行われます。
見出し | # ## ### '#’の数によってH1〜H6に変化 |
段落 | 普通に入力。空行を入れると段落が変わる。改行ひとつだけは無視される。バックスラッシュ+改行で段落内改行 |
リスト | - ハイフン:番号無しリスト、1. 数字とピリオド:番号付きリスト(最初の数字以外は何でもよい。自動的に付け直される) -ハイフンの前にタブを入れると階層化できる |
リンク | <http~~ > [TEXT](http://~~):ハイパーリンク ![TEXT](http://~~):画像リンク |
引用 | > 段落の先頭に大なり記号 |
太字 | **text** アスタリスク2個で囲む |
斜体 | *text* アスタリスクひとつで囲む |
区切り線 | --- ハイフン3つ |
インラインコード | バッククオートひとつで囲む |
コードブロック | バッククオート3個の行で初めて、バッククオート3個の行で閉じる |
ヘルプを掘ってみると他にもあるかもしれません。
Rawは書いたテキストがそのまま表示されます。
Pythonファイルを実行する
Pythonファイルの実行はローンチャーからターミナルを開いて、そこからpython {ファイル名}で実行するみたいです。
JupyterLabのターミナルは、デフォルトでanacondaの(base)環境が開くので、場合によってはconda activateで環境を切り替える必要があります。
また、ファイルブラウザ上にあるPythonファイルは、Notebook上で run filename.py
で実行して、結果もNotebook上に表示できました。
JupyterLabを停止する
JupyterLabはサーバーなのでブラウザ上のウインドウを閉じてもサーバーは動き続けています。
サーバーも止めたい時にはJupyterLabのFileメニューからShutdownを選択します。
ちなみにJupyterLabが動いているターミナルウインドウでctrl-cを押すと
Shutdown this Jupyter server (y/[n])?
という表示が出て、サーバーを止めるかどうか聞かれます。放っておくと5秒後に元に戻ります。
もちろんターミナルウインドウを閉じてもプロセスが強制的に止まりますが、あまりやらない方が良さそうです。
そんな感じで、pythonの勉強に便利そうなJupyterLabでした。