Visual Studio Code環境でJupyterNotebookを操作する方法

スポンサーリンク
VisualStudioCodeでJupyterNotebookを操作する Python

Visual Studio Code と JupyterNotebookの連携とPylanceによる機能拡張

Pythonの開発環境としてJupyterNotebookはとても有名で実際に使われているユーザーは多いかと思います。Cellと呼ばれるスペースに機能ごとにコードを入力して即座に実行・結果を確認しフィードバックできる。ブラウザベースの直感的に分かりやすいGUIで難しい操作が必要ないなど誰にでも簡単に使うことができる・・・など秀逸な開発環境だと思います。

ただ、少しPython上級者や開発者のユーザー層にとっては、物足りなさも感じる点があるのも事実だと思います。たとえば、現在の他の主流なIDEには当たり前の次のような機能は残念ながらJupyterNotebookで対応してくれません。(完全に未対応ではありませんが、、)

JupyterNotebookで不足している機能とは・・・
  • Debug機能を使いたい
  • コード入力補完機能をつかってタイプミスを減らしたい
  • ヒントやコードスニペットの表示してほしい

そこで、今回の記事ではマイクロソフトのVisual Studio Code(以降VSCodeと表す)と

JupyterNotebook環境(以降Jupyterと表す)を連携させて、VSCodeからJupyterを使う方法をご紹介したいと思います。

Jupyterの開発容易性とVSCodeの拡張機能を駆使し、それぞれのメリットを生かしながら効率的に開発を進めていきましょう。

スポンサーリンク

1. VSCodeとJupyter環境とを連携する方法

VSCodeとJupyter環境とを連携させる方法を紹介しますが、本記事ではJupyterはAnacondaディストリビューションに同梱されたものを使うということを前提にして説明を進めていきます。

VSCodeでJupyter環境を使うには次のような手順になります。

VSCodeとJupyterを連携する手順

1.Jupyterの管理アプリ(Anaconda)に仮想環境を用意する。(※1)

2.VSCode上で動かすPython環境を➀でつくった仮想環境とを紐づけする。(※2)

3.VSCode上のコマンドパレットでJupter環境を呼び出します

※1 必須ではありません

※2 ➀で仮想環境を用意しなかった場合は、既存のJupyter環境を紐づけします。

ではそれぞれについて順に説明してきます。

1.1 Jupyterの管理アプリ(Anaconda)に仮想環境を用意する

Anacondaには仮想環境という概念があり、プロジェクトや開発用途によってライブラリ管理環境(仮想環境)をつくり必要に応じて環境ごと切り分けるこができます。

したがって、VSCode用に仮想環境も用意し、そちらと連携するようにすると良いでしょう。

Anacondaによる仮想環境の作り方は次の関連記事を参照してください。

1.2 VSCodeとJupyter(Anaconda)仮想環境とを紐づけする

次にVSCodeとJupyter(Anaconda)仮想環境とを紐づけします。まず、VSCodeのステータスバーにある現在の実行環境をクリックします。() すると、ツールバー上にマシン上にインストールされているPythonの実行環境一覧がポップされます。() この中から1.1項で作成した仮想環境下で動作するJupyterを選択します。()

VScodeとPythonの実行環境とを紐づける
図2  VSCodeとJupyter環境との紐づけ

これだけで両環境の紐づけ作業は完了です。実に簡単ですね。

1.3 VSCode上のコマンドパレットでJupyter環境を起動する

そして、次の手順でVSCodeからJupyterを起動します。メニューバーの「表示」から「コマンドパレット」と進み、コマンドパレットを表示させます(図3 ➀➁)

VScodeのコマンドパレットの使い方1
図3  VSCodeコマンドパレットの呼び出し

コマンドパレットに「Jupyter」と入力しJupyterに関連するコマンド(操作)一覧を表示させます。この中からまずは新規ノートブックを作りたいので、「Create New Blank Jupyter Notebook」を選択します。(図4 ➀➁)

VScodeのコマンドパレットの使い方2
図4  コマンドパレットから新規ノートブックを作成

すると、次図のようにVSCodeのコードエディタ部分にJupyterのCellが表示され()、Jupyter同様の操作性()でコーディングすることができるようになります。ショートカットもCtrl+Enterで実行、

bキーで直下に新規シート追加、mキーでマークアップ表記など同様に使えます。

VScodeでPythonと連携
図5 VSCodeでJupyterを起動

2. Python開発を便利にする機能拡張(Pylance)の導入

Python_基本文法_内包表記

前項までで、VSCodeとJupyterとを連携することができるようになりました。つまり、JupyterでできることがVSCodeでもできるようになったということです。

さて、このVSCodeですが、拡張機能(プラグイン)という、ユーザーが独自にカスタマイズすることができる機能があります。

この拡張機能をつかってVSCode+Jupyterの開発環境をより便利にしていきましょう

2.1 Python開発を支援する拡張機能「Pylance」を導入しよう

Pylanceとは、近代プログラミング環境では欠かすことのできない最新機能をPythonで使えるようにしたVSCode用のプラグインです。

具体的には、Pylanceを導入することで次のようなことができるようになります。

InteliSense

linting

デバッグ機能

コードナビゲーションスニペット

など、Pythonの開発全般を強力に支援してくれるプラグインなのでPylanceを導入することを強くおすすめします。

VScodeの拡張機能_Pylanceのロゴ
図6 必須プラグインPylance

公式サイトは次のとおりです。

Pylance公式サイト

https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance&ssr=false#overview

その他の特徴については次のとおりです。(公式サイトより抜粋)

Pylanceの概要
図7 その他Pylanceの概要(公式サイトより抜粋)

VSCodeの拡張機能の導入方法については、次の関連記事で解説していますので参照してください。

2.2 Pylanceの便利機能の紹介

ここでは、Pylanceの便利機能のなかからいくつかを紹介したいと思います。

2.2.1 InteliSense(コード入力補完)

まずはじめに、コード入力補完について解説します、現在主流のコードエディタやIDEでは当たり前のようにサポートされている本機能ですが、当然ながら本プラグインでもサポートしています。

例えば、次のようにコードを入力していると()、途中でAIが自動判断した入力候補(次に入力される可能性が高い順)のウィンドウがポップアップして教えてくれます()。

ユーザーはこの候補の中から適当なものをTabキーで確定することでコードを入力していきます。ユーザーにとってはコードを振り返る頻度を減らし、タイプミスなく半自動的にコーディングできるようになります。

VScodeでPythonと連携_入力補完機能
図8 Pylanceのコード入力補完

2.2.2 InteliSense(コードスニペット機能)

次に、コードスニペット機能を紹介します。これも他の高機能ツールなどでは当然のように搭載されていますが、Pylanceを導入することでVSCodeで使えるようになります

具体的には、コード中に使い方の詳細を知りたいメソッドがあったりした場合は、その対象上にマウスを置くことで()、即座に詳細説明がポップアップして使い方を教えてくれます()。都度、公式サイトやDocumentを調べにいく必要がなくなります。

また、実行後に変数や配列などにマウスをおくと各属性値を確認することができるため簡易的なデバッグ(実行結果のトレース)する際に便利です。

VScodeでPythonと連携_ヒント
図9 Pylanceのコードスニペット

2.2.3 Debug機能

最後にDebug機能を紹介します。VSCodeとPylanceを使うことにより本格的なデバッグを行うことができます。順を追って解説していきます。

このDebug機能を使用するにはJupterNotebook形式(*.ipynb)のままでは対応できないため、一度Pythonスクリプト形式(*.py)に変換する必要があります

上部のアイコン一覧から「エクスポート」を選択し、「Python Script」で変換後、適当な名前を付けて保存します。

VScodeでPythonと連携_Debug機能1
図10  Debug機能 Python Scriptのエクスポート

エクスポートしたスクリプトを開くと、コード中に「Debug Cell」というボタンが表示されます。

これを押下することでDebugモードに移行することができます。

VScodeでPythonと連携_Debug機能2
図11  Debug機能Debugモードへ移行

次の図はDebugモード中の画面になります。ブレークポイントを設定して処理を中断して()、ステップ実行などを行うことができます。()また、各種変数や属性値を随時確認することができ、これらを意図的に変更してその効果を確認できる()など他の開発環境と同等のことができるようになります。

VScodeでPythonと連携_Debug機能3
図12  Debug機能Debugモード

3. まとめ

いかがでしたでしょうか?

今回はVSCodeでPythonの開発をする手段として人気のJupyterNotebookと連携させる手法について解説してきました。

JupyterNotebookで物足りない部分をVSCodeの拡張機能で補うまたはパワーアップさせることができるのは大きなメリットといえるでしょう。Pythonでの開発にVSCodeを積極的に取り入れていきたいですね。

最後までお読みいただきありがとうございました。

タイトルとURLをコピーしました