2022年2月13日日曜日

PipenvとVS Codeの環境でJupyter Notebookを使う

Jupyter Notebook/Labはデータ分析には便利なのだが、コード編集は使い慣れたIDEなどを使いたい。VS Codeは拡張機能をインストールすることでJupyter Notebookを使えるようになるので、今回はPipenvで構築した環境のVS Code上でJupyter notebookを使えるようにしてみる。Pipenvはパッケージ管理と仮想環境の構築の両方ができるツール。


環境

WSL2(Ubuntu20.04)。VS CodeからRemote DevelopmentでWSL2に接続する。

$ lsb_release -dr
Description:    Ubuntu 20.04.3 LTS
Release:        20.04
$ python3 -V
Python 3.8.10


VS Codeの設定

今回はVS CodeでWSL2のUbuntu上に接続して環境を作成するので、Remote DevelopmentでWSL2にSSH接続する。方法はRemote DevelopmentでSSH接続先にVS Codeの開発環境を作成するを参照。

VS CodeでWSL2にSSH接続したらVS CodeにPython拡張機能をインストールする。Python拡張機能をインストールするとJupyter拡張機能もインストールされる。Ctrl+Shift+Xで拡張機能のメニューを表示し、検索ボックスで「python」で検索すると見つかる。


Pipenvで環境作成


まずは環境を作成するディレクトリ作成する。VS Code上でCtrl+Shift+@などでターミナルを開いてディレクトリ作成。ここではホームディレクトリ配下にtestenvというディレクトリを作成。
$ mkdir testenv
次にVS Codeから「Open Folder」で作成したディレクトリを開く。この状態でVS Codeのターミナルを開きPipenvをpipでインストール。
$ pip3 install pipenv
$ pip3 show pipenv
Name: pipenv
Version: 2021.11.23
...

続いてPipenvでPython3.8の仮想環境作成。
$ pipenv --python 3.8
Pipenvでjupyterと、Jupyter Notebookの動作確認用にMatplotlibをインストール。
$ pipenv install jupyter matplotlib

jupyterのインストールが完了したら、コマンドパレットを開いて「Python: Select Interpreter」を入力する。Pythonインタープリターの一覧が表示されるので、今回Pipenvで作成したenvtest-xxxxxを選択する。



Jupyterを使う


VS Code上で新規にNotebookを作成するにはコマンドパレットで「Jupyter: Create New Jupyter Notebook」と入力するか、VS CodeのExploreで拡張子ipynbのファイルを作成する。

新規作成したら右上の「Select Kernel」をクリックするとPythonインタープリターの一覧が表示されるので、その中から今回Pipenvで作成したenvtest-xxxxxを選択する。

ここまできたらMatplotlibでグラフを作成してVS Code上で表示してみる。コードを実行してipykernelをインストールするようメッセージが表示されたらインストールする。
%matplotlib inline
import math

import matplotlib.pyplot as plt

f = lambda x: math.exp(pow(x, 2) / 16)
X = [x/10 for x in range(-50, 51)]
y = [f(x) for x in X]
plt.plot(X, y, marker='o')
上記コードを実行すると以下のようなグラフがVS Code上に表示される。


ちなみに、VS Code上のNotebookの行数表示は、コード左側の余白を選択してCtrl-L。

0 件のコメント:

コメントを投稿