少々開発関係の話からはそれますが、Visual Studio Code(以下VSCode)でJupyter Notebookを使う方法を今回まとめてみます。 macOSでの環境構築についてまとめていますが、環境固有の情報はPython 3のセットアップのところだけで、あとはVSCode上での話なので、他のOSでも同様に動かしてみることができると思います。参考になれば幸いです。
Python3をインストール
まずはmacOSにPython3をインストールします。最終的に動かしたいアプリの要件にあったPython3をインストールすればよいでしょう。現在MacはARMベースのApple Silicon(M1,M2..)アーキテクチャーとIntel CPU(amd64)アーキテクチャーに対応しています。
Python 3.9以降はどちらのアーキテクチャーにも対応しています。VSCodeのコマンドラインツール14.0に含まれるPython3はPython3.9なので、対応したものが組み込まれています。それより古いPythonやPythonのモジュールの一部はApple Siliconに非対応のものもまれにあるのでご注意ください(バージョン13.2はPython3.8.9だったので、よく使うnumpyとかが動きませんでした)。調べてちょっと使った感じでは、Python3.9以降を使えば困ることはなさそうです。
XCodeをアップグレードできない場合は、HomebrewやPython公式のインストーラーなどでPython3.9以降をインストールしてください。以下、Python3.9でのみ動作確認しています。
XCode及びコマンドラインツールを入れる方法
次を実行するとメッセージが現れるので、「Xcodeコマンドラインツール」をメッセージに従ってインストールします。
% xcode-select --install
コマンドラインツールを入れると、Python 3.9.6がインストールされます(2022/09/30 14:00現在)。
% python3 --version Python 3.9.6
Python3のインストーラーを使ってインストールする
Python.orgからPython3をダウンロードします。 インストーラーを実行してインストールします。
Homebrewを使ってインストールする
Homebrewを利用している場合は、次のような感じでインストールできます。
$ brew install python@3.9
VSCodeのセットアップ
VSCode自体はダウンロードしてインストール済み前提とします。まだインストールしていない場合は公式サイトからダウンロードして、インストールします。
VSCodeでPython3のパスを設定
Homebrewを利用している場合は、XCodeのコマンドラインツールもインストールしていると思います。 公式サイトからPython3をダウンロードしてインストールした場合も、他の開発で他のツールが別のバージョンのPythonをインストールしているかもしれません。
VSCodeがデフォルトで利用するPython3をVSCodeの設定を開き、python.defaultInterpreterPathで指定します。
VSCodeにPythonとJupyter拡張機能をインストール
VSCodeの拡張機能として、Python拡張とJupyter拡張をインストールします。 Python拡張をインストールするとJupyter拡張も一緒にインストールされるはずですが、揃っていない場合は検索してインストールします。
VSCodeで開発用のディレクトリーを開く
例えば~/working/vscode-workspace
のようなパスにディレクトリーを作成しておきます。
VSCodeで作成したパスのディレクトリーを開きます。
VSCodeで開発用のディレクトリーを開いた状態でターミナルを開く
開発用のディレクトリー(~/working/vscode-workspace
)を開いた状態で、VSCodeのターミナルを開くと、そのパスをカレントディレクトリーとしてシェルが開きます。
VSCodeのターミナルでPython仮想環境を作る
次のようなコマンドをVSCode内のターミナルで実行して、Python 3の仮想環境を作成します。
% cd ~/working/vscode-workspace % python3 -m venv .venv
複数のバージョンのPythonがシステムに入っている場合は、python3.8
,python3.9
のように指定したほうが良いと思います。
% python3.9 -m venv .venv
作成した仮想環境にアクセスするため、つぎを実行します。
% source .venv/bin/activate
シェルの冒頭に(.venv)がついたら、Python 3の仮想環境の作成と切り替えは成功です。
Python3のjupyterモジュールを仮想環境にインストール
仮想環境に入ると、pythonやpipコマンドでバージョンを指定しないでも目的のバージョンを利用できます。念の為確認します。
例:
% python--version Python 3.9.6 % pip --version pip 21.2.4 from /Users/ytooyama/working/vscode-workspace/.venv/lib/python3.9/site-packages/pip (python 3.9)
つぎのように実行して、jupyterモジュールをインストールします。
% pip install jupyter ... Installing collected packages: jupyter Successfully installed jupyter-1.0.0
以上で完了です。上記はApple Silicon (M1)のMacでの例です。Intel CPUのMacの場合は、違ったメッセージが出るかもしれません。 今回の例ではXCodeコマンドラインツールに含まれるPython 3.8を使いましたが、一部のPython3モジュールはApple Siliconに非対応のモジュールがあり、インストールに失敗する可能性があります。その場合はPython3.9以降のバージョンをインストールしましょう。最新のバージョンはPython3.10系のバージョンですが、利用するモジュールやプログラムがPython3.10で動くかは要確認です。
Jupyter NotebookをVSCodeで開く
コマンドパレットを開きます(表示→コマンドパレットか、Shift + ⌘ + P)。
「Create: New Jupyter Notebook」を入力してリターンキーを実行。
すると、次のようにJupyter NotebookがVSCodeで開かれます。
あとはその画面でJupyter Notebookを利用します。ログはVSCodeのいつもの方法でファイル保存できます。
print('hello jupyter notebook')
と入力して左側の「セルを実行」ボタン(▷)をクリックすると結果が表示されます。
実行したい作業に合わせてPythonモジュールをVSCodeのターミナルを使って「pip install 〜」でインストールして、Jupyter Notebookでコードを実行すると結果が表示されます。
また、右上のPythonのバージョン部分をクリックすると、環境にインストールされたPython 3と仮想環境のPython 3を切り替えられます。以降はPython 3の仮想環境上にモジュールをインストールしていくので、VSCodeの画面でも「.venv」の方のPython 3を選択しておかなければなりません。
円周率をSymPyモジュールで有効桁数100桁まで表示してみます。
import sympy z=sympy.pi.evalf(100) print(z)
実行するとsympyモジュールがないと言われます。
VSCodeのコンソールでモジュールをインストールします。
% pip install sympy
もう一度実行して、結果が表示されることを確認します。
import sympy z=sympy.pi.evalf(100) print(z) v 0.2s 3.141592653589793238462643383279502884197169399375105820974944592307816406286208998628034825342117068
次に、NumPyを使ってみます。
import numpy as np a = np.array([1, 2, 3]) a * 3
同様に、numpyモジュールがないと言われるのでインストールします。
% pip install numpy
もう一度実行して、結果が表示されることを確認します。
import numpy as np a = np.array([1, 2, 3]) a * 3 v 1.6s array([3, 6, 9])
matplotlibモジュールを使って、ちょっとしたグラフを作ってみます(当然ながらモジュールのインストールが必要)。 降雨量のデータはtime-j.netが提供する情報を使っています。
import matplotlib.pyplot as plt month = ['1', '2', '3', '4', '5', '6','7', '8', '9', '10', '11', '12'] amount = [37.4, 43.1, 90.9, 102.3, 117.3, 142.4, 148.1, 176.3, 201.8, 164.9, 75.7, 41.1] plt.bar(month, amount)
実行すると、グラフが出力されます。
まとめ
VSCodeの操作に慣れていれば文書書きやコードの実行をVSCodeで一括して行えるので、便利なのかなと思います。 VSCodeのJupyter拡張では、文書に対してPythonのコードとMarkdown形式のデータを入力できます。