Python
Python3
Jupyter
VSCode

VSCodeのタスクでjupyter notebookを起動する

はじめに

普段VSCodeでコードを書いていますが、jupyter notebookも使いたいときがあります。
jupyter notebookの起動はコマンドjupyter notebookで一発ですが、いちいち黒い画面でコマンドをたたくのはめんどくさいです。
自分はMinicondaを使っているので、activateしてからコマンド叩くのはもっとめんどくさいです。

そこで、VSCodeのタスクから起動できるようにタスクランナーを定義して使っています。
tasks.jsonの書き方いつも忘れるので備忘録を兼ねて。

環境

OS - Windows10
VSCode - 1.19.1
Anaconda3/Miniconda3 - 4.3.30

タスク定義

tasks.json
{
    "version": "2.0.0",
    "tasks": [
        {
            "label": "run-jupyter(環境名)",
            "type": "shell",
            "command": "cmd.exe",
            "args": [
                "/C",
                "'C:\\Users\\[user name]\\Miniconda3\\Scripts\\activate.bat 環境名 & jupyter notebook'"
            ],
            "group": "none",
            "options": {
                "cwd": "C:\path\to\notebook_dir"
            },
            "problemMatcher": []
        }
    ]
}

label
タスク名。condaの環境名を入れておくとわかりやすい。

command
実行するファイルはコマンドプロンプトとする。

args
(ここがキモ)
一つ目の値 "/C" でコマンドプロンプトで実行するコマンドを指定。
二つ目の値 "'C:\\Users\\[user name]\\Miniconda3\\Scripts\\activate.bat 環境名 & jupyter notebook'" で、指定したconda環境をactivateしてjupyter notebookを起動する。
コマンドプロンプトでは、シングルクォートで囲うことでスペースを含んだコマンドを渡せる。
& で区切り、前のコマンドが実行された後に後続のコマンドを実行する。
前半でactivate.batで対象の環境をactivateし、その状態でjupyter notebookコマンドを実行する動作となる。

options の cwd
タスクが実行されるワーキングディレクトリ。jupyter notebookのルートディレクトリにしたい場所を指定する。

実行

上記定義ができたら、ctrl+p -> task [タスク名] と入力すれば、jupyter notebookが開きます。
止めるときは、VSCodeのターミナル画面でCtrl-Cです。VSCode自体を終了しても止まります。

終わりに

  • 自分は試していないのですが、jupyterをAnaconda環境で使う場合、環境をnotebook上のKernelから切り替えられるextensionもあるみたいです。
    https://qiita.com/yoppe/items/38005f415a5b8b884c7d
  • command や args を置き換えれば同じコンセプトで他のOSでもできると思います。