Jupyter Notebook、便利ですよね。
ただ、起動するときに
cd "ルートのパス"
jupyter notebook
と入力する必要があり、ちょっと面倒です*1。
また、Pythonの仮想環境にJupyterをインストールした場合、
cd "jupyterルート" . "仮想環境起動" jupyter notebook
のようになり、さらにコマンドが長くなります。
これを、Windowsのスクリプト(bat、PowerShell)を使って、起動できるようにする、というのが当記事の目標です。
環境
動作確認した環境は、以下の通りです。
| 名称 | バージョン |
|---|---|
| OS | WIndows 10 Professional 64bit |
| Python | 3.6.5 |
| jupyter | 1.0.0 |
| PowerShell | 5.1.17134.48 |
PowerShellは、いわゆるデスクトップバージョンです。
また、仮想環境はvenvを使用して作成しています。
Anaconda等は使用せず、pipにてjupyterをインストールした環境です。
PowerShell利用
| 名称 | 値 |
|---|---|
| 仮想環境名 | myvenv |
| 仮想環境ルート | C:\seminar\myvenv |
| Jupyterルート | C:\Seminar |
上記の値なら、
Set-Location "C:\seminar" . "C:\seminar\myvenv\Scripts\Activate.ps1" jupyter notebook
のようなスクリプトで、Jupyter Notebookで起動できます*2。
スクリプト保存場所は、ローカルならどこでも良いです。
権限不足
上記のスクリプトで起動はできますが、ログインユーザーがPowerShellの実行権限*3を持たない場合があります。
権限を振ることはできるのですが、面倒です。
ここに、権限付与について書いてあります。必要なら設定してください。
batと組み合わせる
バッチファイルからPowerShellを起動すれば、権限不足でもPowerShellスクリプトを起動できます。
powershell -NoProfile -ExecutionPolicy RemoteSigned .\execute_jupyter.ps1
同一階層にこのバッチファイルと、PowerShellスクリプトを置いて、バッチファイルを起動すると、

のように、batファイルからJupyter Notebookを起動できるようになります。
おわりに
今回も小ネタでした。
私見ですが、Jupyter Notebookを使うことになれば、pip等も多用することになります。
そのため、コマンドの扱いには慣れておいたほうが良いです。
jupyterを仮想環境に入れている理由ですが、依存ライブラリが多く、あまり本体をごちゃごちゃにしたくない、という思いからです。
仮想環境を自分で作れる時点で、あまり今回の知識は使わない気はしますが、楽できる一手段として考えていただければよいと思います。
*1:慣れろ、と言われるとそれまでだが
*2:上記内容を保存し、「~.ps1」という拡張子で保存し、ファイル右クリックで「PowerShellで実行」を選択する
*3:PowerShellのGet-ExecutionPolicyのこと