= Jupyter (JupyterLab / VS Code) = <> == Jupyterとは? == Pythonのコードを1行ずつ(あるいはブロックごとに)実行し、結果やグラフをその場に表示できる対話型実行環境です。 試行錯誤しながらデータを解析するKAGRA/PEMの作業スタイルに最適で、事実上の標準ツールとなっています。 かつては「Jupyter Notebook (クラシック)」というインターフェースが主流でしたが、現在は以下の2つのスタイルが一般的です。 1. '''JupyterLab (ブラウザ版)''': インストールして `jupyter lab` と打つだけで起動。設定不要で初心者におすすめ。 2. '''VS Code (エディタ版)''': 高機能エディタ Visual Studio Code 上で動かす。補完機能やデバッグが強力で、慣れれば最も効率的。 == 1. JupyterLab (推奨: まずはここから) == ブラウザ上で動作する標準的なインターフェースです。 === インストール === 解析環境(仮想環境)にインストールします。 {{{ mamba install jupyterlab }}} === 起動と使い方 === ターミナルで以下のコマンドを入力します。 {{{ jupyter lab }}} 自動的にブラウザが立ち上がり、JupyterLabの画面が表示されます。 左側のファイルブラウザから作業ディレクトリを選び、Launcherから「Python 3」アイコンをクリックすると、新しいノートブック (`.ipynb`) が作成されます。 * '''終了方法''': ブラウザを閉じ、ターミナルに戻って `Ctrl + C` を2回押すとサーバーが停止します。 == 2. VS Code で使う (推奨: 本格的な解析へ) == Microsoftが開発している高機能エディタ [[https://code.visualstudio.com/|Visual Studio Code (VS Code)]] を使って `.ipynb` ファイルを開く方法です。 動作が軽快で、変数の確認機能や強力な入力補完(IntelliSense)が使えるため、開発効率が劇的に上がります。 === 導入手順 === 1. PCに [[https://code.visualstudio.com/|VS Code]] をインストールする。 2. VS Codeを起動し、左端の拡張機能アイコン(四角いブロック)から '''Python''' 拡張機能をインストールする。 3. `.ipynb` ファイルを開く(または新規作成する)。 4. 右上の「カーネルの選択 (Select Kernel)」をクリックし、作成したConda環境(例: `igwn-py311`)を選択する。 == リモートサーバでの利用 == リモートサーバで解析する場合、手元のPCでJupyterを立ち上げるのではなく、サーバ上で立ち上げる必要があります。 GUIのないサーバ上のJupyterを手元で操作するには、主に2つの方法があります。 === 方法A: VS Code Remote - SSH (現代的・推奨) === VS Codeの機能を使って、サーバ内のファイルを直接編集する方法です。設定してしまえば最も快適です。 1. 手元のVS Codeに拡張機能 '''Remote - SSH''' をインストールする。 2. 左下の緑色の「><」マーク(またはリモートエクスプローラー)をクリックし、サーバにSSH接続する。 * (初回は `~/.ssh/config` の設定が必要な場合があります) 3. 接続されたウィンドウ内で `.ipynb` ファイルを開くと、自動的にサーバ上のPython環境を使って実行されます。 === 方法B: SSHポートフォワード (伝統的・ブラウザ派向け) === SSHのトンネリング機能を使って、サーバのポートを手元のPCのポートに転送する方法です。 1. '''サーバ側''': ポートを指定してJupyterLabを起動します(ブラウザを立ち上げないオプション `--no-browser` が必須)。 {{{ [user@k1sum0 ~]$ jupyter lab --no-browser --port=8888 --ip=0.0.0.0 }}} うまくいっていても何も表示されないと思うので、次に進む。 2. '''手元のPC''': 別のターミナルを開き、SSHポートフォワードを行います。 {{{ # ssh -L [手元のポート]:localhost:[サーバのポート] user@server [local ~]$ ssh -N -L 8888:localhost:8888 user@server }}} 3. '''手元のブラウザ''': `http://localhost:8888` にアクセスします。 * トークン(パスワード)を求められたら、サーバ側のターミナルに表示されている `token=...` の文字列をコピペしてください。 sshにアクセスできず困ったら  {{{ $ ​​killall -9 ssh }}} == 便利なショートカットキー == これだけ覚えておくと作業効率が変わります(ブラウザ・VS Code共通)。 * '''Shift + Enter''': セルを実行して次のセルへ進む * '''Ctrl + Enter''': セルを実行してその場に留まる * '''A''': 現在のセルの上に新規セルを挿入 (Above) * '''B''': 現在のセルの下に新規セルを挿入 (Below) * '''D, D''' (Dを2回): セルを削除 (Delete) * '''M''': セルをMarkdownモード(メモ書き用)にする * '''Y''': セルをCodeモード(プログラム用)に戻す