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