Pythonの開発環境としてJupyterNotebookはとても有名で実際に使われているユーザーは多いかと思います。”セル”と呼ばれるスペースに機能ごとにコードを入力して即座に実行・結果を確認しフィードバックできる。ブラウザベースの直感的に分かりやすいGUIで難しい操作が必要ないなど誰にでも簡単に使うことができる・・・など秀逸な開発環境だと思います。
ただ、少しPython上級者や開発者のユーザー層にとっては、物足りなさも感じる点があるのも事実だと思います。たとえば、現在の他の主流なIDEには当たり前の次のような機能は残念ながらJupyterNotebookで対応してくれません。(完全に未対応ではありませんが、、)
そこで、今回の記事ではマイクロソフトのVisual Studio Code(以降VSCodeと表す)と
JupyterNotebook環境(以降Jupyterと表す)を連携させて、VSCodeからJupyterを使う方法をご紹介したいと思います。
Jupyterの開発容易性とVSCodeの拡張機能を駆使し、それぞれのメリットを生かしながら効率的に開発を進めていきましょう。
1. VSCodeと「JupyterNotebook」を連携させる方法
VSCodeとJupyter環境とを連携させる方法を紹介しますが、本記事ではJupyterはAnacondaディストリビューションに同梱されたものを使うということを前提にして説明を進めていきます。
VSCodeでJupyter環境を使うには次のような手順になります。
VSCodeとJupyterを連携する手順
1.Jupyterの管理アプリ(Anaconda)に仮想環境を用意する (※1)
2.VSCode上で動かすPython環境を1.でつくった仮想環境とを紐づけする (※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を選択します。(➂)
これだけで両環境の紐づけ作業は完了です。実に簡単ですね。
1.3 コマンドパレットでJupyterNotebookを起動する
そして、次の手順でVSCodeからJupyterを起動します。メニューバーの 表示 から コマンドパレット と進み、コマンドパレットを表示させます(図3 ➀,➁)
コマンドパレットに Jupyter と入力しJupyterに関連するコマンド(操作)一覧を表示させます。この中からまずは新規ノートブックを作りたいので、Create New Blank Jupyter Notebook を選択します。(図4 ➀,➁)
すると、次図のようにVSCodeのコードエディタ部分にJupyterのCellが表示され(➀)、Jupyter同様の操作性(②)でコーディングすることができるようになります。
ショートカットも Ctrl + Enter で実行、bキー で直下に新規シート追加、mキー でマークアップ表記など同様に使えます。
2. Python開発を便利にする機能拡張(Pylance)の導入
前項までで、VSCodeとJupyterとを連携することができるようになりました。つまり、JupyterでできることがVSCodeでもできるようになったということです。
さて、このVSCodeですが、拡張機能(プラグイン)という、ユーザーが独自にカスタマイズすることができる機能があります。
この拡張機能をつかってVSCode+Jupyterの開発環境をより便利にしていきましょう。
2.1 Python開発を支援するプラグイン「Pylance」を導入しよう
Pylanceとは、近代プログラミング環境では欠かすことのできない最新機能をPythonで使えるようにしたVSCode用のプラグインです。
具体的には、Pylanceを導入することで次のようなことができるようになります。
など、Pythonの開発全般を強力に支援してくれるプラグインなのでPylanceを導入することを強くおすすめします。
公式サイトは次のとおりです。
Pylance公式サイト
https://marketplace.visualstudio.com/items?itemName=ms-python.vscode-pylance&ssr=false#overview
その他の特徴については次のとおりです。(公式サイトより抜粋)
VSCodeの拡張機能の導入方法については、次の関連記事で解説していますので参照してください。
2.2 Pylanceの便利機能の紹介
ここでは、Pylanceの便利機能のなかからいくつかを紹介したいと思います。
2.2.1 InteliSense(コード入力補完)
まずはじめに、コード入力補完について解説します、現在主流のコードエディタやIDEでは当たり前のようにサポートされている本機能ですが、当然ながら本プラグインでもサポートしています。
例えば、次のようにコードを入力していると(➀)、途中でAIが自動判断した入力候補(次に入力される可能性が高い順)のウィンドウがポップアップして教えてくれます(②)。
ユーザーはこの候補の中から適当なものを Tabキー で確定することでコードを入力していきます。ユーザーにとってはコードを振り返る頻度を減らし、タイプミスなく半自動的にコーディングできるようになります。
2.2.2 InteliSense(コードスニペット機能)
次に、コードスニペット機能を紹介します。これも他の高機能ツールなどでは当然のように搭載されていますが、Pylanceを導入することでVSCodeで使えるようになります。
具体的には、コード中に使い方の詳細を知りたいメソッドがあったりした場合は、その対象上にマウスを置くことで(➀)、即座に詳細説明がポップアップして使い方を教えてくれます(②)。都度、公式サイトやDocumentを調べにいく必要がなくなります。
また、実行後に変数や配列などにマウスをおくと各属性値を確認することができるため簡易的なデバッグ(実行結果のトレース)する際に便利です。
2.2.3 Debug機能
最後にDebug機能を紹介します。VSCodeとPylanceを使うことにより本格的なデバッグを行うことができます。順を追って解説していきます。
このDebug機能を使用するにはJupterNotebook形式(*.ipynb)のままでは対応できないため、一度Pythonスクリプト形式(*.py)に変換する必要があります。
上部のアイコン一覧から エクスポート を選択し、Python Script で変換後、適当な名前を付けて保存します。
エクスポートしたスクリプトを開くと、コード中に Debug Cell というボタンが表示されます。
これを押下することでDebugモードに移行することができます。
次の図はDebugモード中の画面になります。ブレークポイントを設定して処理を中断して(➀)、ステップ実行などを行うことができます。(②)また、各種変数や属性値を随時確認することができ、これらを意図的に変更してその効果を確認できる(➂)など他の開発環境と同等のことができるようになります。
3. まとめ
いかがでしたでしょうか?
今回はVSCodeでPythonの開発をする手段として人気のJupyterNotebookと連携させる手法について解説してきました。
JupyterNotebookで物足りない部分をVSCodeの拡張機能で補うまたはパワーアップさせることができるのは大きなメリットといえるでしょう。Pythonでの開発にVSCodeを積極的に取り入れていきたいですね。
最後までお読みいただきありがとうございました。