VS CodeのJupyter Notebook
Jupyter (旧称 IPython Notebook) は、Markdown テキストと実行可能な Python ソースコードを1つのキャンバス (ノートブック) に簡単に組み合わせることができるオープンソースプロジェクトです。Visual Studio Code は、Jupyter Notebook をネイティブでサポートしており、Python コードファイルを通じても使用できます。このトピックでは、Jupyter Notebook のネイティブサポートについて説明し、以下の方法を紹介します。
- Jupyter Notebook の作成、開く、保存
- Jupyter コードセルの操作
- 変数エクスプローラーとデータビューアーを使用して変数を表示、検査、フィルター処理
- リモートJupyterサーバーに接続する
- Jupyter Notebookのデバッグ
環境設定
Jupyter Notebook で Python を使用するには、VS Code で Anaconda 環境、または Jupyter パッケージがインストールされている別の Python 環境をアクティブ化する必要があります。環境を選択するには、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) からPython: インタープリターの選択コマンドを使用します。
適切な環境がアクティブ化されると、Jupyter Notebook を作成して開いたり、リモート Jupyter サーバーに接続してコードセルを実行したり、Jupyter Notebook を Python ファイルとしてエクスポートしたりできます。
ワークスペースの信頼
Jupyter Notebook の使用を開始する際は、信頼できるワークスペースで作業していることを確認する必要があります。有害なコードはノートブックに埋め込むことができ、ワークスペースの信頼機能を使用すると、自動コード実行を許可または制限するフォルダーとその内容を指定できます。
VS Code が信頼されていないワークスペースで制限付きモードを実行しているときにノートブックを開こうとすると、セルを実行できず、リッチな出力が非表示になります。
Jupyter Notebookの作成または開く
Jupyter Notebook を作成するには、コマンドパレット (⇧⌘P (Windows, Linux Ctrl+Shift+P)) から作成: 新規 Jupyter Notebook コマンドを実行するか、ワークスペースに新しい .ipynb
ファイルを作成します。
次に、右上にあるカーネルピッカーを使用してカーネルを選択します。
カーネルを選択すると、各コードセルの右下にある言語ピッカーが、カーネルでサポートされている言語に自動的に更新されます。
既存の Jupyter Notebook がある場合は、ファイルを右クリックして VS Code で開くか、VS Code のファイルエクスプローラーから開くことができます。
セルの実行
単一のコードセルを実行する
コードを追加したら、セルの左側にある実行アイコンを使用してセルを実行すると、コードセルの下に結果が表示されます。
選択したコードセルを実行するには、コマンドモードと編集モードの両方でキーボードショートカットを使用することもできます。Ctrl+Enter は現在選択されているセルを実行します。Shift+Enter は現在選択されているセルを実行し、その直下に新しいセルを挿入します (フォーカスは新しいセルに移動)。Alt+Enter は現在選択されているセルを実行し、その直下に新しいセルを挿入します (フォーカスは現在のセルに残る)。
複数のコードセルを実行する
複数のコードセルを実行する方法は複数あります。Notebook Editor のメインツールバーにある二重矢印を使用してノートブック内のすべてのセルを実行するか、現在のコードセルの上下にあるすべて実行、上をすべて実行、または下をすべて実行を選択します。
セクション内のセルを実行する
ノートブック内の関連するセルをより簡単に実行するには、マークダウンセクションヘッダーによってグループ化されたセルをセクション内のセルを実行アクションで実行できます。このアクションは、ノートブックのアウトラインビューと Sticky Scroll 要素で利用できます。
Sticky Scroll 要素内で、選択したヘッダーを右クリックし、コンテキストメニューのアクションからセクションを実行します。アウトラインビュー内では、ホバーまたは選択時に表示されるツールバーアイコンを選択し、表示されるアクションから単一のセルまたはセルのセクションを実行します。
Jupyter Notebookの保存
Jupyter Notebook は、キーボードショートカットの Ctrl+S またはファイル > 保存を使用して保存できます。
Jupyter Notebookのエクスポート
Jupyter Notebook は、Python ファイル (.py
)、PDF、または HTML ファイルとしてエクスポートできます。エクスポートするには、メインツールバーの... > エクスポートを選択します。すると、ファイル形式オプションのドロップダウンが表示されます。
注: PDF エクスポートの場合、TeX がインストールされている必要があります。インストールされていない場合、PDF オプションを選択すると、インストールが必要であるという通知が表示されます。また、ノートブックに SVG のみで出力されている場合、PDF には表示されないことに注意してください。PDF に SVG グラフィックを含めるには、出力に非 SVG 画像形式が含まれていることを確認するか、まず HTML にエクスポートしてからブラウザーを使用して PDF として保存します。
Notebook Editorでのコードセルの操作
Notebook Editor を使用すると、Jupyter Notebook 内でコードセルを簡単に作成、編集、実行できます。
コードセルの作成
既定では、空のノートブックには開始用の空のコードセルがあり、既存のノートブックには一番下にコードセルが配置されます。空のコードセルにコードを追加して開始します。
msg = "Hello world"
print(msg)
コードセルモード
コードセルを操作しているとき、セルは未選択、コマンドモード、編集モードの3つの状態になります。コードセルの左側にある垂直バーとエディターの境界線は、セルの現在の状態を示します。バーが表示されていない場合、セルは未選択です。セルが選択されている場合、コマンドモードまたは編集モードのいずれかになります。
コマンドモードでは、セルの左側に実線の垂直バーが表示されます。セルは操作可能で、キーボードコマンドを受け入れます。
編集モードでは、実線の垂直バーに加えて、セルエディターの周囲に境界線が表示されます。セルの内容 (コードまたは Markdown) を変更できます。
モードを切り替えるには、キーボードまたはマウスを使用できます。キーボードでは、Enter キーを押して編集モードに移行するか、Esc キーを押してコマンドモードに移行します。マウスでは、セルの左側にある垂直バーをクリックするか、コードセル内のコード/Markdown 領域の外側をクリックします。
追加のコードセルの追加
コードセルは、メインツールバー、セルのセル追加ツールバー (ホバーで表示)、およびキーボードコマンドを使用して追加できます。
現在選択されているセルの下に新しいセルを追加するには、メインツールバーのプラスアイコンまたはセルのホバーツールバーを使用します。
コードセルがコマンドモードの場合、A キーを使用して上にセルを追加し、B キーを使用して選択したセルの下にセルを追加します。
コードセルの選択
マウスまたはキーボードの上下矢印キーを使用して、選択したコードセルを変更できます。コードセルがコマンドモードの場合、J キー (下) と K キー (上) を使用することもできます。
複数のコードセルの選択
複数のセルを選択するには、まず1つのセルを選択モードにします。塗りつぶされた背景は選択されたセルを示します。連続するセルを選択するには、Shift キーを押しながら、選択したい最後のセルをクリックします。任意のセルのグループを選択するには、Ctrl キーを押しながら、選択に追加したいセルをクリックします。
コードセルの移動
ドラッグアンドドロップでノートブック内でセルを上下に移動できます。コードセルの場合、ドラッグアンドドロップ領域は以下に示すようにセルエディターの左側にあります。レンダリングされた Markdown セルの場合、どこをクリックしてもセルをドラッグアンドドロップできます。
複数のセルを移動するには、選択範囲に含まれる任意のセルで同じドラッグアンドドロップ領域を使用できます。
キーボードショートカット Alt+矢印 も、1つまたは複数の選択されたセルを移動します。
コードセルの削除
コードを削除するには、コードセルツールバーの削除アイコンを使用します。選択したコードセルがコマンドモードの場合、キーボードショートカット dd を使用できます。
最後の変更を元に戻す
z キーを使用して前の変更を元に戻すことができます。たとえば、誤って編集した場合、それを前の正しい状態に元に戻したり、誤ってセルを削除した場合、それを回復したりできます。
コードとMarkdownの切り替え
Notebook Editor を使用すると、コードセルを Markdown とコードの間で簡単に変更できます。セルの右下にある言語ピッカーを選択すると、Markdown と、該当する場合、選択したカーネルでサポートされている他の言語を切り替えることができます。
キーボードを使用してセルタイプを変更することもできます。セルが選択されてコマンドモードの場合、M キーはセルタイプを Markdown に切り替え、Y キーはセルタイプをコードに切り替えます。
Markdown が設定されると、Markdown 形式のコンテンツをコードセルに入力できます。
Markdown セルをレンダリングするには、セルツールバーのチェックマークを選択するか、キーボードショートカット Ctrl+Enter および Shift+Enter を使用します。
出力をクリアするか、カーネルを再起動/中断する
すべてのコードセルの出力をクリアしたり、カーネルを再起動/中断したりしたい場合は、メインの Notebook Editor ツールバーを使用してこれを行うことができます。
行番号の有効化/無効化
コマンドモードの場合、L キーを使用して単一のコードセル内の行番号を有効または無効にできます。
ノートブック全体で改行番号を切り替えるには、任意のセルでコマンドモードのときに Shift+L を使用します。
目次
ノートブックをナビゲートするには、アクティビティバーでファイルエクスプローラーを開きます。次に、サイドバーでアウトラインタブを開きます。
アウトラインビューのフィルターコントロールを使用して、Markdown ヘッダー、コードセル、コードセルシンボルを含めることができます。フィルターは以下の設定に対応しています。
notebook.outline.showMarkdownHeadersOnly
notebook.outline.showCodeCells
notebook.outline.showCodeCellSymbols
注: 既定では、アウトラインには Markdown のみが表示されます。コードセルを表示するには、以下の設定を有効にします。ノートブック > アウトライン: コードセルを表示。
Jupyter Notebook EditorでのIntelliSenseサポート
Python Jupyter Notebook Editor ウィンドウには、IntelliSense (コード補完、メンバーリスト、メソッドのクイック情報、パラメーターヒント) が完全に組み込まれています。コードエディターで行うのと同様に、Notebook Editor ウィンドウでも生産的に入力できます。
変数エクスプローラーとデータビューアー
Python ノートブック内では、現在の Jupyter セッション内の変数を表示、検査、並べ替え、フィルター処理できます。コードとセルを実行した後、メインツールバーの変数アイコンを選択すると、現在の変数のリストが表示され、コードで変数が使用されると自動的に更新されます。変数ペインはノートブックの下部に開きます。
データビューアー
変数の詳細については、行をダブルクリックするか、変数の横にあるデータビューアーで変数を表示ボタンを使用して、データビューアーで変数の詳細ビューを表示することもできます。
または、Data Wrangler などの他の拡張機能が提供するデータ表示エクスペリエンスを使用することもできます。Data Wrangler 拡張機能は、データのインサイトを表示し、データのプロファイリング、品質チェック、変換などを実行するのに役立つ豊富なユーザーインターフェースを提供します。Data Wrangler 拡張機能の詳細については、ドキュメントを参照してください。
行のフィルター処理
データビューアーでの行のフィルター処理は、各列の上部にあるテキストボックスに入力することで行えます。検索したい文字列を入力すると、その文字列が列に含まれるすべての行が見つかります。
厳密に一致するものを検索する場合は、フィルターの前に '=' を付けます。
より複雑なフィルター処理は、正規表現を入力して行うことができます。
プロットの保存
ノートブックからプロットを保存するには、出力をホバーし、右上にある保存アイコンを選択するだけです。
注: matplotlib および Altair で作成されたプロットのレンダリングをサポートしています。
カスタムノートブック差分比較
内部的には、Jupyter Notebook は JSON ファイルです。JSON ファイルのセグメントは、入力、出力、メタデータの3つのコンポーネントで構成されるセルとしてレンダリングされます。行ベースの差分比較を使用してノートブックで行われた変更を比較することは難しく、解析が困難です。ノートブックのリッチな差分エディターを使用すると、セルの各コンポーネントの変更を簡単に確認できます。
差分比較ビューに表示したい変更の種類をカスタマイズすることもできます。右上にあるツールバーのオーバーフローメニュー項目を選択して、含めたいセルコンポーネントをカスタマイズします。入力の差分は常に表示されます。
VS Code 内の Git 統合の詳細については、VS Code のソース管理を参照してください。
Jupyter Notebookのデバッグ
Jupyter ノートブックをデバッグする方法には、「行ごとの実行」と呼ばれるシンプルなモードと、完全なデバッグモードの2つがあります。
注: これらの機能の両方には ipykernel 6+ が必要です。ipykernel のインストールまたはアップグレードの詳細については、この Wiki ページを参照してください。
行ごとの実行
行ごとの実行では、他の VS Code デバッグ機能に気を取られることなく、セルを1行ずつ実行できます。開始するには、セルツールバーの行ごとの実行ボタンを選択します。
同じボタンを使用して、1つのステートメントずつ進めます。セル停止ボタンを選択して早期に停止したり、ツールバーの続行ボタンを選択してセルの最後まで実行を続けたりできます。
セルをデバッグ
ブレークポイントや他のセルやモジュールにステップインする機能など、VS Code でサポートされている完全なデバッグ機能を使用したい場合は、完全な VS Code デバッガーを使用できます。
- ノートブックセルの左余白をクリックして、必要なブレークポイントを設定することから始めます。
- 次に、実行ボタンの横にあるメニューのセルをデバッグボタンを選択します。これにより、セルがデバッグセッションで実行され、異なるセルまたは
.py
ファイル内であっても、実行されるすべてのコードのブレークポイントで一時停止します。 - 通常 VS Code で行うように、デバッグビュー、デバッグコンソール、およびデバッグツールバーのすべてのボタンを使用できます。
Jupyter Notebook でセルをデバッグしても、launch.json のデバッグ構成は使用されないことに注意してください。代わりに、jupyter.debugJustMyCode
などの設定でカスタマイズできます。
ノートブック内を検索する
キーボードショートカット Ctrl/Cmd + F を使用して、ノートブック内 (または検索オプションをフィルターして一部) を検索できます。フィルターオプション (漏斗アイコン) をクリックして、以下を検索します。
- Markdown セルの入力 (Markdown ソース)
- Markdown セルの出力 (レンダリングされた Markdown)
- コードセルの入力 (コードセルソース)
- コードセルの出力 (セル出力)
ノートブック検索は、既定ではセル入力のみにフィルターされます。
リモートJupyterサーバーに接続する
リモート Jupyter サーバーに接続することで、Jupyter Notebook の負荷の高い計算を他のコンピューターにオフロードできます。接続されると、コードセルはローカルコンピューターではなくリモートサーバーで実行されます。
リモート Jupyter サーバーに接続するには
-
ノートブックの右上にあるカーネルピッカーボタンを開くか (またはコマンドパレットからノートブック: ノートブックカーネルを選択コマンドを実行)、
-
既存の Jupyter サーバーオプションを選択して、既存の Jupyter サーバーに接続します。
-
既存のサーバーに初めて接続するには、実行中の Jupyter サーバーの URL を入力を選択します。
-
実行中の Jupyter サーバーの URL を入力するよう求められたら、
?token=
URL パラメーターを含んだ認証トークン付きのサーバー URI (ホスト名) を指定します。(認証トークンを有効にして VS Code ターミナルでサーバーを起動した場合、トークン付きの URL は通常、ターミナル出力に表示され、そこからコピーできます。) あるいは、URI を指定した後でユーザー名とパスワードを指定することもできます。
注: セキュリティを強化するために、Microsoft は Jupyter サーバーを SSL やトークンサポートなどのセキュリティ対策で構成することを推奨しています。これにより、Jupyter サーバーに送信される要求が認証され、リモートサーバーへの接続が暗号化されることが保証されます。ノートブックサーバーの保護に関するガイダンスについては、Jupyter ドキュメントを参照してください。
データサイエンスプロファイルテンプレート
プロファイルを使用すると、現在のプロジェクトやタスクに応じて拡張機能、設定、UI レイアウトをすばやく切り替えることができます。Jupyter Notebook の使用を開始するのに役立つよう、便利な拡張機能、設定、スニペットを厳選したプロファイルであるデータサイエンスプロファイルテンプレートを使用できます。プロファイルテンプレートをそのまま使用することも、独自のワークフローに合わせてさらにカスタマイズするための出発点として使用することもできます。
プロファイルテンプレートは、プロファイル > プロファイルの作成... ドロップダウンから選択します。
プロファイルテンプレートを選択したら、設定と拡張機能を確認し、新しいプロファイルに含めたくない個別の項目を削除できます。テンプレートに基づいて新しいプロファイルを作成した後、設定、拡張機能、または UI に加えた変更はプロファイルに保持されます。